Apparatus and methods for developing conversational applications
First Claim
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 configured to generate a semantic representation for each of the natural language phrases and to identify whether said semantic representation is a fuzzy request, or a precise request 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 semantic representation and configured to;
identify said semantic representation as a spontaneous request in the context of a dialog process said semantic representation as a spontaneous request and, reply to said spontaneous request e. program logic responsive to said semantic representation 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, but not precluding potential interruptions by spontaneous human made requests
2 Assignments
0 Petitions
Accused Products
Abstract
Apparatus with accompanying subsystems and methods for developing conversational computer applications. As a user interface, the apparatus allows for a user to initiate the conversation. The apparatus also answers simple and complex questions, understands complex requests, pursues the user for further information when the request is incomplete, and in general provides customer support with a human like conversation while, at the same time, it is capable to interact with a company'"'"'s proprietary database. As a development tool, the apparatus allows a software developer to implement a conversational system much faster than takes, with current commercial systems to implement basic dialog flows. The apparatus contains three major subsystems: a state transition inference engine, a heuristic answer engine and a parser generator with semantic augmentations. A main process broker controls the flow and the interaction between the different subsystems. The state transition inference engine handles requests that require processing a transaction or retrieving exact information. The heuristic answer engine answers questions that do not require exact answers but enough information to fulfill the user'"'"'s request. The parser generator processes the user'"'"'s natural language request, that is, it processes the syntactical structure of the natural language requests and it builds a conceptual structure of the request. After the parser generator processes the user'"'"'s request, a main process broker feeds the conceptual structure to either the heuristic answer engine or to the state transition inference engine. The interaction between the main process broker and the subsystems creates a conversational environment between the user and the apparatus, while the apparatus uses information from proprietary databases to provide information, or process information, during the course of the conversation. The apparatus is equipped with a programming interface that allows implementers to declare and specify transactions based requests and answers to a multiplicity of questions. The apparatus may be used with a speech recognition interface, in which case, the apparatus improves the recognition results through the context implicitly created by the apparatus.
-
Citations
38 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 configured to generate a semantic representation for each of the natural language phrases and to identify whether said semantic representation is a fuzzy request, or a precise request 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 semantic representation and configured to;
identify said semantic representation as a spontaneous request in the context of a dialog process said semantic representation as a spontaneous request and, reply to said spontaneous request e. program logic responsive to said semantic representation 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, but not precluding potential interruptions by spontaneous human made requests - View Dependent Claims (3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
- Apparatus for maintaining unrestricted natural language discourse with humans and interacting with third party application programs comprising;
-
15. :
- 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 questions and specific instructions fuzzy queries selected from the group of fuzzy questions and fuzzy requests comprising the steps of;
a. receiving a natural language phrase from a plurality of user interfaces types 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.
- 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;
-
16. :
- The method of claim 15, wherein said natural language sentences can be further categorized in additional categories other than said fuzzy queries and said precise requests, comprising the steps of;
adding additional grammars that take third priority behind said user grammar and said universal grammar, such that if said parser fails with said user grammar and said universal grammar, said parser tries to parse said natural language request with said additional grammars, thereby categorizing said natural language request into said additional categories. - View Dependent Claims (17)
- The method of claim 15, wherein said natural language sentences can be further categorized in additional categories other than said fuzzy queries and said precise requests, comprising the steps of;
-
16-1. :
- A method for reducing development time of a natural language application comprising the steps of;
a. mapping user requirements to sample requests b. dividing said sample requests into;
requests that can be satisfied with approximated answers and, requests that must be satisfied with precision
- A method for reducing development time of a natural language application comprising the steps of;
-
18. :
- Method for taking a natural language request as input and for retrieving a plurality of answers, in the form of natural language, from a plurality of third party software application, regardless of;
how said third party software application stores information, how said third party software application retrieves and delivers said information and format in which said third party software application delivers said information, such that said plurality of answers are customized for a human making said natural language request, comprising;
a. receiving from humans information in natural language selected from the group consisting of speech and written text b. parsing said natural language phrase and converting said phrase to a structure of semantic objects, whereby said structure of semantic objects is a semantic representation of the natural language phrase c. storing reference calls to a plurality of software applications and value placeholders, which hold returned data values from said software applications d. storing said value place holders embedded in a narrative template of answers d. invoking said third party software application as directed by said reference calls and replacing said value placeholders embedded in said narrative template, by the returned values, from said third party software application, whereby the result, from combining the returned values with the narrative template, is a set of complete answers customized for the human'"'"'s specific needs and for further retrieval e. converting said customized text of answers into a vector of semantic objects, each object containing semantic information about the word, its role in the phrase, and its offset position in the phrase f. traversing said structure of semantic objects and searching said semantic vector by logically comparing the semantic objects of said structure with the semantic objects of said vector in the order directed by traversing said structure of semantic objects g. assigning to each semantic vector a score, which indicates the relevance of the answers in relation to the natural language request made by said human and said score depends on the number of the matches found h. converting said semantic vectors to natural language phrases - View Dependent Claims (2, 19, 20, 21, 22, 23, 24, 25, 26)
- Method for taking a natural language request as input and for retrieving a plurality of answers, in the form of natural language, from a plurality of third party software application, regardless of;
-
20-2. :
- The method of claim 19 further comprising a database of functions, each function having zero or many arguments, and each function representing each of said words and each argument of said function is the type of conceptual constituent that must be used with said function, being said type of conceptual constituent an ontological category.
-
27. :
- A method for discourse management between a human user and a plurality of third party application programs that lack a natural language interface, comprising the steps of;
a. receiving from humans a request in natural language initiating a dialog and selected from the group consisting of speech and written text b. providing a plurality of rule base systems or state machines such that each 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 the execution of said third application program c. parsing said request through a context free grammar and converting said request to a semantic structure of conceptual constituents d. traversing said semantic structure and pattern-matching said conceptual constituents with the states found in said state machine, such that the matching states are inactive states and the unmatched states are converted to active states e. requesting said human for information associated to said active states f. executing said third party application program whereby said request is interpreted semantically, whereby said request is associated to said third party application program and, whereby missing information is identified from the human'"'"'s phrase necessary to execute said third party application program - View Dependent Claims (28, 30, 31, 32, 33, 34, 35, 36)
- A method for discourse management between a human user and a plurality of third party application programs that lack a natural language interface, comprising the steps of;
-
37. :
- 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 logic to analyze syntactically one type of communicative act b. program logic responsive to said natural language phrases input and said multiplicity of context free grammars, configured to parse said natural language input with said multiplicity of context free grammars, such that only one context free grammar is used successfully for parsing one natural language phrase, and to produce a semantic structure and a Boolean indicator that indicates which said context free grammar is used successfully for parsing said natural language input c. 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 - View Dependent Claims (38)
- Apparatus for managing a multiplicity of types of communicative acts in a natural language discourse comprising;
Specification