Methods for authoring conversational services for chatbots and databases, systems for authoring conversational services for chatbots and databases, and computer programs for executing methods for authoring conversational services for chatbots and databases (authoring conversational service modules from relational data).

An intuitive method for authoring conversational services using natural language query translation addresses the complexity of existing tools, enabling domain experts to create precise data-oriented chatbot responses without programming knowledge.

JP7853020B2Active Publication Date: 2026-04-28INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 6 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
INTERNATIONAL BUSINESS MACHINE CORPORATION
Filing Date
2022-05-16
Publication Date
2026-04-28

AI Technical Summary

Technical Problem

Existing chatbot authoring tools require complex programming interfaces or limited graphical user interfaces, making it difficult for domain experts to define conversational services, especially for data-oriented customer requests, and often produce imprecise answers for data-oriented questions.

Method used

An intuitive method for authoring conversational services that guides users through connecting a chatbot to a database, annotating table columns with natural language descriptions, and translating these descriptions into SQL queries using a natural language query service.

Benefits of technology

Enables domain experts to easily create data-oriented conversational services by translating natural language queries into structured queries, allowing for precise answers and handling various question forms without requiring programming expertise.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007853020000002
    Figure 0007853020000002
  • Figure 0007853020000003
    Figure 0007853020000003
  • Figure 0007853020000004
    Figure 0007853020000004
Patent Text Reader

Abstract

To provide an intuitive way for clients to author a conversation service for data-oriented customer requests.SOLUTION: A method of authoring a conversation service for a chatbot and a database comprises the steps of: receiving, from a user, a selection of a database, and connecting an authoring service of the chatbot to a table in the database; outputting, from the authoring service to the user, a question requesting a description of a subject matter of the table; receiving the description of the subject matter of the table; outputting to the user a question requesting identification information of a key column of the table that contains values that represent the subject matter of the table; receiving the identification information of the key column of the table; and translating, by a natural language query service, the description of the subject matter of the table and the key column of the table into the conversation service, where the conversation service includes SQL statements suitable for querying the database table.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present disclosure relate to automated conversation services such as chatbots.

Background Art

[0002] Automated conversation services such as chatbots are becoming increasingly popular in enterprise customer service. This is because they can replace much of the human labor in handling simple customer requests. However, how to define a conversation service remains a difficult problem. This is because the complex programming interfaces provided by some vendors are often difficult for domain experts who have not received sufficient computing training in those interfaces to use, and the intuitive graphical user interfaces available today are often limited in their ability to define the different types of target requests that a client can handle. A significant portion of customer requests are information queries that can be answered using items listed in a data table or a conventional relational database. Examples include flight schedules, product features, release dates, service ticket status, etc.

[0003] Existing tools that allow clients to define chatbots typically assume that the dialog requests an intent, a slot, and a prompt. The intent specifies the basic form of the request, the slots are the parameter values ​​requested by the end user, and the prompt is the utterance indicating how those values ​​should be requested. Several vendors are creating other specialized ways of defining bots, such as various forms that will be filled in or customized with expected questions and appropriate answers or actions. There have also been various efforts to design natural language query (NLQ) interfaces to databases, which involves detailed techniques on how to enhance translation tools that map natural language queries to structured database queries in standard languages ​​like SQL.

[0004] However, intent, slot / entity, and prompt, or dialog tree models for authoring chatbots, are too low-level. They require clients to break down each expected end-user query into such elements. They are cumbersome to use and difficult to scale up for the many combinations of questions that can be answered using a large database. Question / answer definitions obtained by analyzing imported documents are limited to text-oriented questions. For data-oriented questions, these documents often produce only comprehensive text clauses rather than precise answers. Other specialized chatbot authoring tools are also limited to data and dialogue flow types suitable for narrow areas such as e-commerce and do not work in general domains. Research on NLQ technology has focused heavily on the details of translation methods, but less on how to interact with clients who need to set up such services themselves and provide their own descriptions of the data according to their own domain knowledge. [Overview of the Initiative] [Problems that the invention aims to solve]

[0005] Embodiments of this disclosure relate to an intuitive method for a client to author conversational services for data-oriented customer requests. [Means for solving the problem]

[0006] According to one embodiment of the present disclosure, a method is provided for authoring a conversational service for a chatbot and a database, the method comprising: receiving a database selection from a user and connecting the chatbot authoring service to a table in the database, the table comprising a plurality of rows and a plurality of columns; outputting a question from the authoring service to the user requesting a description of the subject of the table; the authoring service receiving the description of the subject of the table; the authoring service receiving a question requesting the user requesting identification information of a key column of the table, including a value representing the subject of the table; the authoring service receiving the identification information of the key column of the table; and a natural language query service translating the description of the subject of the table and the key column of the table to the conversational service, the conversational service comprising an SQL statement suitable for querying the database table.

[0007] According to further embodiments of the present disclosure, the method comprises the steps of: outputting a question from the authoring service to the user requesting a description of another column in the table; and receiving a natural language description of another column in the table by the authoring service, wherein the natural language description of another column in the table is translated by a natural language query service to the conversation service.

[0008] According to further embodiments of the present disclosure, the authoring service outputs a question to the user requesting a description of another column in the table, and the authoring service receives a natural language description of another column in the table, and this is repeated for each column in the table.

[0009] According to further embodiments of the present disclosure, the method comprises the step of outputting feedback from the authoring service to the user summarizing the description of the subject in the table, the identification information of the key column in the table, and the natural language description of another column in the table.

[0010] According to further embodiments of the present disclosure, the method comprises the steps of: outputting a prompt from the conversation service to the user asking the user a question concerning the subject of the table; receiving the user a question concerning the subject of the table; outputting an answer from the conversation service to the question received from the user; and receiving an instruction from the user whether the answer is correct, partially correct, or incorrect.

[0011] According to further embodiments of the present disclosure, the method comprises the steps of: repeatedly outputting a question from the authoring service to the user requesting an alternative description of the subject of the table or another column in the table for one or more columns in the table, in response to an incorrect or partially correct answer; receiving a natural language description of the subject of the table or another column in the table from the authoring service; and translating the description of the subject of the table and the natural language descriptions of the one or more columns in the table to the conversation service.

[0012] According to another embodiment of the present disclosure, a system is provided for authoring conversational services for a chatbot and a database, the system comprising: a chatbot; an authoring service that guides a user through the process of constructing the conversational services for the chatbot; a database, the database including tables to which the authoring service is connected; and a natural language query service that performs natural language processing on responses provided to the authoring service by the user and generates SQL queries for the database service. The authoring service outputs a question requesting the user a description of the subject in the table, receives the description of the subject in the table from the user, outputs a question requesting the user identification information of a key column in the table including a value representing the subject in the table, receives the identification information of the key column in the table from the user, the natural language query service translates the description of the subject in the table and the key column into the conversational service, the conversational service includes SQL statements suitable for querying the database table.

[0013] According to further embodiments of the present disclosure, the authoring service outputs a question to the user requesting a description of another column in the table, receives a natural language description of the other column in the table from the user, and the natural language query service translates the natural language description of the other column in the table to the conversation service.

[0014] According to further embodiments of the present disclosure, the system comprises a graphical user interface through which the user communicates with the chatbot and the authoring service, and cloud storage.

[0015] According to further embodiments of the present disclosure, the authoring service repeatedly outputs a question to the user requesting an alternative description of the subject of the table or another column in the table for each column in the table, and receives a natural language description of the subject of the table or another column in the table from the user.

[0016] According to further embodiments of the present disclosure, the authoring service outputs feedback to the user summarizing the description of the subject in the table, the identification information of the key column in the table, and the natural language description of another column in the table.

[0017] According to further embodiments of the present disclosure, the conversational service outputs a prompt to the user for a question from the user regarding the subject of the table, receives a question from the user regarding the subject of the table, outputs an answer to the question received from the user to the user, and receives an instruction from the user whether the answer is correct, partially correct, or incorrect.

[0018] According to further embodiments of the present disclosure, the authoring service repeatedly steps of: responding to an incorrect or partially correct answer, outputting a question from the authoring service to the user requesting an alternative description of the subject of the table or another column in the table for one or more columns of the table; and receiving a natural language description of the subject of the table or another column in the table by the authoring service, the natural language query service translating the description of the subject of the table and the natural language descriptions of the one or more columns in the table to the conversation service.

[0019] According to another embodiment of the present disclosure, there is provided a non-transitory program storage device readable by a computer, tangibly embodying a program of instructions executed by the computer to perform a method of orchestrating a conversation service for a chatbot and a database.

Brief Description of the Drawings

[0020] [Figure 1] It is a block diagram of an exemplary orchestration tool according to an embodiment. [Figure 2] It is a flowchart of stages of an exemplary orchestration tool according to an embodiment. [Figure 3] It is a diagram showing a part of a table from an exemplary database according to an embodiment. [Figure 4] It is a diagram showing an exemplary orchestration process according to an embodiment. [Figure 5] It is a diagram showing an exemplary orchestration process according to an embodiment. [Figure 6] It is a diagram showing an exemplary orchestration process according to an embodiment. [Figure 7] It is a diagram showing an exemplary orchestration process according to an embodiment. [Figure 8] It is a diagram showing an exemplary orchestration process according to an embodiment. [Figure 9] It is a diagram showing an exemplary orchestration process according to an embodiment. [Figure 10] It is a diagram showing an exemplary orchestration process according to an embodiment. [Figure 11] It is a diagram showing an exemplary orchestration process according to an embodiment. [Figure 12] It is a diagram showing an exemplary orchestration process according to an embodiment. [Figure 13] It is a schematic diagram of an exemplary cloud computing node implementing an embodiment of the present disclosure. [Figure 14]This figure shows an exemplary cloud computing environment according to an embodiment of this disclosure. [Modes for carrying out the invention]

[0021] The exemplary embodiments of the Disclosure described herein generally provide augmented reality systems and methods for automated conversational services. While the embodiments are subject to various modifications and alternative forms, specific embodiments are illustrated in the drawings and described in detail herein. However, this disclosure is not intended to limit itself to any particular form disclosed, but rather should be understood to encompass all modifications, equivalents, and alternatives that fall within the spirit and scope of this disclosure.

[0022] Embodiments of this disclosure provide an interactive authoring tool that enables a client to define a conversational service based on relational data. In one embodiment, the authoring tool is performed via a dialog that guides the client through (1) specifying a connection to a database or importing one or more data tables, (2) providing a description of the data, and then (3) defining multiple conversational queries and action modules through an iterative “write, translate, check, expand” process. This leverages NLQ technology to provide a translation of a typical natural language query provided by the client into a structured query language such as SQL, and, in addition, a regenerated natural language form of the query composed of the translated components. The regenerated natural language query allows the client to check the bot's understanding, even if the client is not familiar with SQL syntax. The client can try several variations of the same query until they are satisfied with the correct regeneration. The translated SQL statements can be used in response actions to this set of queries. The set of natural language queries mapped to the same action, along with the response action, can function as modules within a chatbot service, triggered when an end-user utterance matches a natural language query. Optionally, this set of relevant natural language queries can be further expanded using paraphrasing or synonym search tools to better match other potential variations of end-user utterances.

[0023] An authoring tool according to one embodiment enables the easy construction of data-oriented conversational services by domain experts who may have little or no programming expertise. It can work for a wide range of databases of entity-instance type, where each row of the table represents an entity and each column represents an attribute of the entity in the table. An example of a table that is not an entity-instance table is a key-value table of a single object, in which case each row gives a (key, value) pair for one of the properties of this object. However, if we rotate the key-value table clockwise so that each column describes one key and its value, the table becomes an entity-instance table with a single example. The need for initial data description is kept to a minimum to allow clients to get started easily. An authoring tool according to one embodiment provides a process for clients to incrementally refine their data description to support more variable forms of the same query.

[0024] An authoring tool according to one embodiment includes a user interface, a connected application, and NLQ technology. Figure 1 is a block diagram of an exemplary authoring tool according to one embodiment. The authoring tool 100 according to one embodiment may be cloud-based and comprises a chatbot service 120, an authoring service 130 that guides the user through the process of building conversational services for the chatbot, a database service 150, a graphical user interface (GUI) 110 through which the user communicates with the chatbot service and the authoring service, a natural language query (NLQ) service 140 that performs natural language processing on responses provided to the authoring service by the user and generates SQL queries for the database service, and cloud storage 160. In some embodiments, the authoring service 130 is included in or provided by the chatbot service 120. The conversational services created by the authoring tool in Figure 1 are provided by the chatbot service 120.

[0025] The tool guides the client through three stages shown in Figure 2: configuration 210, annotation 220, and query 230.

[0026] In configuration stage 210, the user selects a database and, via the GUI 110, provides connection details such as the host URL and access credentials to the authoring service 130 for database 150, and selects tables from the database. Figure 3 shows a portion of tables from an exemplary database according to one embodiment.

[0027] In annotation stage 220, the interactive authoring process controlled by the authoring service 130 presents the user with annotation prompts in the form of questions via the GUI 110 and collects data descriptions from the user via the GUI 110. If the user has previously annotated a table, the user can find it in the database list and proceed directly to the "Query" stage to ask a question. The user can also select it and proceed to "Annotate" to complete an incomplete annotation or make changes.

[0028] In the following GUI-based dialog descriptions, the term "chatbot" is used to refer to the "authoring" dialog, and it should be noted that this is different from the chatbot that the end user interacts with, which provides the conversational service created by the authoring service.

[0029] The reason for schema annotations is that conversational services need words to describe how entities and their properties are referred to in natural language, so that they can understand questions about those entities and their properties. These words can sometimes complement column headers that might be incomprehensible to the user.

[0030] For example, consider a table listing two examples of fruit. [Table 1]

[0031] This table essentially states that there is an example of a fruit identified as apple by its name (PROD), red in color (COL), and with a medium calorie count (MED_CAL) of 95. In addition, there is another example of a fruit identified as banana by its name (PROD), yellow in color (COL), and with a medium calorie count (MED_CAL) of 105.

[0032] The table should be interpreted as a statement like these, which can be used to generate answers when the focus of the question is on different parts of the statement. The table provides column labels and entry values ​​that can be collected. In addition to those (sometimes incomprehensible) labels, the user provides the chatbot service with their synonymous natural language words: fruit, name, color, calories, etc. Using these, questions containing those words can be associated with the relevant columns.

[0033] For example, someone might ask, "Which fruit has more than 100 medium calories?" To answer this question, the service needs the words "fruit" and "medium calories," and the connection that "fruit" is represented by a "name" listed in the column PROD. Using these, the condition can be matched against MED_CAL, and the target PROD value can be retrieved as the answer. Note that the word "fruit" refers to the subject of the table and does not need to appear explicitly in the table. This word is needed so that a question like "Which fruit..." can be understood as requesting a target row. The value in the "PROD" column is used to answer the question once this column is identified as an identifier for the item described in each row.

[0034] Therefore, according to one embodiment, in order to set up a database for use in conversation, a description is provided of what information a table stores. This is sometimes referred to as the “schema annotation” process. It is assumed that the table lists items of a particular type, where each column represents some property of the item. Thus, the first thing needed is a word that describes the subject of the table. What is this table about? It could be of type, such as things / people / places / events or something else.

[0035] Once the subject is identified, the chatbot needs to know which column has the value that best represents each particular item. Typically, this is the column containing the name or other unique identifier for each item. Next, for each column, the chatbot needs a few natural language words that are synonymous with the column header. This allows the chatbot to know which column is relevant when such words appear in the question.

[0036] In addition, the chatbot would like to know the semantic type of each column, i.e., whether the value is about a person, a location, a date, etc. This will allow the chatbot to search within those columns for potential answers to specific types of questions, such as questions led by "who," "where," or "when." For columns containing numbers, the chatbot needs to know if the numbers are suitable for calculations. For example, frequency numbers, lengths, weights, etc., are suitable. However, ID numbers, phone numbers, etc., are not.

[0037] In annotation stage 220, the authoring process according to one embodiment begins with the following two questions about each table: (1) The primary entity within the table, that is, what this table is about, and (2) Which column best represents the primary key of the table, i.e., which column best represents the rows and other items within the table?

[0038] The answers to these questions are not always readily apparent from the database. For the first question, the user provides a single word that describes the subject of the table, i.e., what the table is about. For example, if the table lists restaurant names, addresses, menus, etc., the user enters "restaurants." For a product catalog, the user enters "products." Alternatively, the user can narrow this down to the type of product, for example, if the table lists only toys, they can narrow it down to "toys." For the second question, the user enters which column best represents the items in the row. Typically, this should be a column containing the name or some unique identifier.

[0039] In one embodiment, once the user provides answers to these two questions, the user is presented with additional questions regarding special properties of each database column. For each column, the user may provide a natural language word that is synonymous with the column header and check whether the value is one of a special type, such as a person, location, money, date, time, or a number suitable for calculation. The user may provide synonyms for words describing the primary entity or its properties and add those alternative words as labels for that primary entity or column.

[0040] In the query phase 230, the user tests the conversational service by asking a question to the chatbot 120 and receives an answer to the question from the database. The query phase may be omitted.

[0041] Once database columns are annotated, the user can proceed to query stage 230 to begin asking a question to the database, or optionally continue to annotation stage 220 to provide natural language synonyms for each column in the table, specify the semantic type of the column, or write a statement about how columns in different tables can be referred to collectively. The question asked in query stage 230 will be translated into an SQL statement and a regenerated natural language query by the backend NLQ technology. The client can verify that the translation is good, and at this point, the original question and translation are saved to be used as a “question-action” pair for the chatbot. This pair can be added to the chatbot definition as an implicit intent and its associated response, which can be used directly in the chatbot or after further refinement through chatbot tooling. Refinement may include generalizing proper nouns in the question to entity classes or their synonyms, formatting data responses, or enhancing the query statement with additional client-provided variations. If the client discovers an incorrect translation by NLQ technology in the query stage 230, it can inspect the translation to check which part of the query is wrong, and then return to the annotation stage 220 to provide additional annotations to the database, such as additional synonyms for column names or ambiguous templates for entity values. The authoring service outputs a question to the user requesting, for one or more columns in the table, an alternative description of the table's subject or another column in the table, and a natural language description of the table's subject or another column within the table. The alternative descriptions of the table's subject and the natural language descriptions of one or more columns within the table are translated and incorporated into the conversation service. The client can iterate between the annotation stage 220 and the query stage 230 to incrementally enrich the conversation service so that the chatbot can handle many different types of questions.

[0042] Figures 4 to 14 are screenshots showing exemplary authoring process dialogs for the database table presented in Figure 3, according to one embodiment. In one embodiment, Figure 3 is a restaurant table called NYC_RESTAURANTS, where each row refers to a specific restaurant, and this table includes the following columns: "DBA" for the restaurant name, "BORO" for the restaurant location, "STREET" for the restaurant address, "ZIPCODE" for the restaurant's zip code, "PHONE" for the restaurant's telephone number, and "CUISINE" for the type of cuisine the restaurant offers. However, it should be noted that the use of the restaurant table is exemplary and non-limiting, and the following annotation and query processes can be applied to any database table. In addition, Figures 4 to 9 show the annotation process, and Figures 10 to 14 show the query process. The authoring process according to one embodiment is a three-way conversation involving the user, an authoring service referred to as the host in the drawings, and a chatbot. In Figures 4 to 14, the left side of the screenshots shows the dialogue between the user, host, and chatbot, while the right side shows the feedback the user receives from the chatbot and host.

[0043] Referring to Figure 4, as disclosed above, the authoring process begins by having the chatbot service ask the following questions for each table.

[0044] What is this table about? Please give a single word that describes the type of item listed in each row.

[0045] Below the question presented by the chatbot, there are several buttons that the user can click for some built-in answers if they need to provide further explanation for that question. In the example in Figure 4, the user types "restaurant" on the right side of the left column. The chatbot service responds with the following words:

[0046] This table is assumed to be about restaurants. Are there any other words that refer to the same concept? If so, please provide them in a comma-separated list.

[0047] The chatbot service also provides a button for "None at the moment," which is selected by the user in the example shown in Figure 4.

[0048] Moving from Figure 4 to Figure 5, the chatbot service responds with the following words:

[0049] The table's subject is referred to as a restaurant. Do you need to change that? Then, two buttons are presented. In this example, the user selects the "No, this is fine" button, and the chatbot then responds with the words, "We will assume this table is about a restaurant," and the host indicates that the annotation has been saved.

[0050] According to one embodiment, the chatbot here presents the following second question:

[0051] If someone asks for an example of a restaurant, which column in the table would you like to use as the answer? Please enter the number if you would like to use the corresponding column below: 1: DBA; 2: BORO; 3: STREET; 4: ZIPCODE; 5: PHONE; 6: CUISINE;

[0052] In this example, the user responds with the number "1". The chatbot service responds with the words "We will use column 1 to represent the row", indicating that the host has saved DBA as the primary key. On the right side of the screen, the chatbot service provides the following feedback:

[0053] The subject of the table is referred to as a restaurant.

[0054] The column DBA is used as the primary key.

[0055] Once the subject and primary key of the database table are provided, the remaining questions in the annotation process according to one embodiment concern the special properties of each database column.

[0056] Continuing to Figure 6, the chatbot service outputs "Please continue with attribute annotations," and the host prompts the user with the words "Please select the next attribute." The chatbot service outputs the following feedback on the right: "Column DBA is referenced as DBA, and this is the primary key," and on the left, it responds with the following words:

[0057] Annotate the attribute DBA. Besides using its current name, how would you refer to it in natural language? Give it one or more terms, separated by commas. Or, choose from the following: and present three buttons. In this example, the user responds by typing "Name". The chatbot service responds by outputting "[Name] used" followed by two buttons: one "Add to current label" and one "Replace current label". The user selects the "Add to current label" button.

[0058] Referring to Figure 7, the chatbot service outputs the following feedback on the right: "Column DBA is dba, referred to as the name, and this is the primary key," and on the left, it outputs the following:

[0059] The name will be used as the natural language name for DBAs.

[0060] Checking the data type of the column.

[0061] Can values ​​be used to answer questions about people, locations, or money? Then, four buttons follow. In this example, the user responds by selecting the "None of the above" button. The chatbot then outputs, "Is the value about a date or time?" followed by three more buttons. The user again selects the "None of the above" button. The chatbot responds by outputting the following:

[0062] This column is not considered a date or time.

[0063] Set the DBA's semantic type to none (not set).

[0064] The DBA's semantic type is stored as none.

[0065] The host outputs "Annotation saved," and the chatbot outputs the following feedback on the right: "Column DBA is dba, referenced as name, and this is the primary key."

[0066] Referring to Figure 8, the host outputs "Select the following attribute". The chatbot outputs the following feedback on the right: "Column BORO is referenced as BORO", and the following on the left:

[0067] Please annotate the attribute BORO. Besides using its current name, how would you refer to it in natural language? Give it one or more terms, separated by commas. Alternatively, choose from the following:

[0068] This is followed by three buttons. The user enters "City, Area". The chatbot responds with the words "Using [City, Area]:", followed by two buttons. The user selects the "Add to current label" button. The host responds with the words "Annotation saved", and the chatbot outputs the following feedback to the right: "Column BORO is referenced as boro, Area, City."

[0069] Referring to Figure 9, the chatbot outputs "Continue with attribute annotations," and the above process is repeated for all columns in the database table. During this process, the chatbot outputs feedback on the annotations on the right. Once all columns are annotated, the host outputs "All attributes have annotations," and the chatbot outputs "Do you want to change any annotations?" followed by two buttons. In the example shown in Figure 9, the user selects "No, not for now." The chatbot outputs "Updating model; starting training; this may take 1-2 minutes...," and then the host outputs "Training complete." During training, the NQL service 140 shown in Figure 1 processes the annotations and generates internal data to support the conversational service by producing feedback on the use of the annotations on the right side of the screen. After training, the chatbot outputs a summary of how the table is annotated on the right side and the following prompts to the user on the left side:

[0070] You can now proceed to the query panel to ask your question, or to the configuration panel to select a different database to annotate. After selecting a database, click Start.

[0071] This is followed by a "Start" button.

[0072] Referring to Figure 10, the user has selected "Query" from the top menu bar, and the chatbot outputs the following: NYC_RESTAURANTS is ready for use. The query processing will begin using the selected database.

[0073] The host then outputs that the model is ready for the query. The chatbot service prompts the user to ask a question. In the example in Figure 10, the user types, "How many restaurants are there in Queens?", which is echoed on the right, after the heading "Question:". The chatbot responds with the words, "Sending query to backend," and the host outputs, "You are asking about the number of DBAs that have boro, but boro is equal to QUEENS, and the answer is: 4907." The host's paraphrased query is echoed on the right, after the heading "Regenerate:", followed by the equivalent SQL to query the database, followed by the heading "Answer", and then the answer: "NYC_RESTAURANTS_DBA 4907". On the left, the chatbot prompts the user with the words, "How was the answer?", followed by four buttons. In this example, the user selects the "Correct" button.

[0074] Referring to Figure 11, the chatbot service prompts the user to ask another question. In the example in Figure 11, the user types, "What types of food are available in Manhattan?" and the steps described in Figure 10 are repeated. The host outputs a rephrasing of the question, an SQL query to the database, and the answer, and the chatbot prompts the user with the words, "How was the answer?" followed by four buttons. In this example, the user selects the "Correct" button.

[0075] Figure 12 shows a further example of a user asking a question to query a conversational service. In Figure 12, the question is, "Which street in Manhattan has the most Thai restaurants?" Other possible questions include, for example, "Which restaurants are located on Broadway in Manhattan?" or "What are the names and phone numbers of Italian restaurants in Queens?"

[0076] If the answer is incorrect or partially correct, the authoring service repeats the following steps: first, it outputs a question requesting the user to provide an alternative description of the subject of the table or another column in the table for one or more columns in the table; and second, it receives a natural language description of the subject of the table or another column in the table. The alternative descriptions of the subject of the table and the natural language descriptions of one or more columns in the table are translated and incorporated into the conversation service.

[0077] In one embodiment, the user continues this process of querying the conversation service until they are satisfied that the conversation service is functioning correctly. However, if the user determines that the conversation service is not entirely satisfactory, they return to annotating the database for the conversation service by selecting the "Annotate" button from the menu bar.

[0078] System Implementation It should be understood that embodiments of the present disclosure can be implemented in various forms, such as hardware, software, firmware, a dedicated processor, or a combination thereof. In one embodiment, an embodiment of the present disclosure can be implemented in software as an application program tangibly embodied on a computer-readable program storage device. The application program can be uploaded to and executed on a machine having any suitable architecture. Furthermore, although the present disclosure includes a detailed description of cloud computing, it should be understood in advance that implementation of the teachings described herein is not limited to a cloud computing environment. Rather, embodiments of the present disclosure can be implemented in combination with any other type of computing environment that is currently known or may be developed in the future. An automated troubleshooting system according to one embodiment of the present disclosure is also suitable for cloud implementation.

[0079] Cloud computing is a service delivery model that enables convenient on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and deployed with minimal administrative effort or interaction with service providers. This cloud model may include at least five characteristics, at least three service models, and at least four deployment models.

[0080] The characteristics are as follows:

[0081] On-demand self-service: Cloud consumers can unilaterally provision computing power, such as server time and network storage, automatically as needed, without requiring human interaction with service providers.

[0082] Broad network access: This capability is available over the network and accessed through standard mechanisms that facilitate use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).

[0083] Resource pooling: A provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically allocated and reallocated according to demand. While consumers generally do not have control or knowledge of the exact location of the resources provided, there is location independence in that they may be able to specify the location at a higher level of abstraction (e.g., country, state, or data center).

[0084] Rapid resilience: This capability allows for rapid and resilient provisioning, sometimes automatically, enabling quick scaling out and rapid release and rapid scaling in. To consumers, the capacity available for provisioning often appears unlimited and can be purchased at any time and in any quantity.

[0085] Services measured: Cloud systems automatically control and optimize resource usage by leveraging metric capabilities at a level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, thereby providing transparency to both service providers and consumers.

[0086] The service model is as follows:

[0087] Software as a Service (SaaS): The ability provided to consumers is the use of a provider's applications running on a cloud infrastructure. These applications are accessible from various client devices via thin client interfaces such as web browsers (e.g., web-based email). Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.

[0088] Platform as a Service (PaaS): The ability offered to consumers is the ability to deploy applications they have created or acquired, written using programming languages ​​and tools supported by the provider, on a cloud infrastructure. Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but they do control the deployed applications and, in some cases, the configuration of the application hosting environment.

[0089] Infrastructure as a Service (IaaS): The ability provided to consumers is the provisioning of processing, storage, networking, and other basic computing resources, where consumers can deploy and run any software, including operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but they do control the operating system, storage, and deployed applications, and in some cases have limited control over selected networking components (e.g., host firewalls).

[0090] The deployment model is as follows:

[0091] Private Cloud: This cloud infrastructure operates solely for a specific organization. The private cloud may be managed by that organization or a third party and may reside on-premises or off-premises.

[0092] Community Cloud: This cloud infrastructure is shared by several organizations and supports a specific community that shares common interests (e.g., mission, security requirements, policies, and compliance considerations). The community cloud may be managed by those organizations or third parties and may reside on-premises or off-premises.

[0093] Public Cloud: This cloud infrastructure is made available to the general public or large industry groups and is owned by an organization that sells cloud services.

[0094] Hybrid Cloud: This cloud infrastructure is a combination of two or more clouds (private, community, or public) that remain independent entities but are joined together by standard or proprietary technologies that enable data and application portability (e.g., cloud bursting for load balancing between clouds).

[0095] Cloud computing environments are service-oriented, focusing on statelessness, low coupling, modularity, and semantic interoperability. At the core of cloud computing lies an infrastructure that includes a network of interconnected nodes.

[0096] Referring here to Figure 13, a schematic diagram of an example of a cloud computing node is shown. Cloud computing node 1510 is merely one example of a suitable cloud computing node and is not intended to imply any limitation on the scope of use or functionality of the embodiments of the disclosure described herein. In any case, cloud computing node 1510 is capable of implementing or performing any of the functions described above herein, or both.

[0097] On cloud computing node 1510, there resides a computer system / server 1512, which operates in a number of other general-purpose or dedicated computing system environments or configurations. Examples of well-known computing systems, environments, or configurations, or combinations thereof, that may be suitable for use with computer system / server 1512 include, but are not limited to, personal computer systems, server computer systems, thin clients, thick clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments that include any of the above systems or devices.

[0098] The computer system / server 1512 can be described in the general context of computer system executable instructions, such as program modules, that are executed by the computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, etc., that perform a specific task or implement a specific abstract data type. The computer system / server 1512 may be implemented in a distributed cloud computing environment, in which case tasks are executed by remote processing devices linked via a communication network. In a distributed cloud computing environment, program modules may reside in both local and remote computer system storage media, including memory storage devices.

[0099] As shown in Figure 13, the computer system / server 1512 in the cloud computing node 1510 is shown in the form of a general-purpose computing device. Components of the computer system / server 1512 may include, but are not limited to, one or more processors or processing units 1516, system memory 1528, and a bus 1518 that connects various system components, including the system memory 1528, to the processor 1516.

[0100] Bus 1518 represents one or more of several types of bus structures, including memory buses or memory controllers, peripheral buses, accelerated graphics ports, and processor or local buses using any of the various bus architectures. Examples of such architectures, without limitation, include industry standard architecture (ISA) buses, microchannel architecture (MCA) buses, enhanced ISA (EISA) buses, video electronics standards association (VESA) local buses, and peripheral component interconnect (PCI) buses.

[0101] The computer system / server 1512 typically includes a variety of computer system-readable media. Such media may be any available media accessible to the computer system / server 1512, and may include volatile and non-volatile media, removable and non-removable media.

[0102] System memory 1528 may include computer system-readable media in the form of volatile memory, such as random access memory (RAM) 1530, or cache memory 1532, or both. The computer system / server 1512 may further include other removable / non-removable, volatile / non-volatile computer system storage media. For illustrative purposes only, storage system 1534 may be provided for reading from and writing to a non-removable non-volatile magnetic medium (not shown, typically called a “hard drive”). Not shown, a magnetic disk drive for reading from and writing to a removable non-volatile magnetic disk (e.g., a “floppy disk”) and an optical disk drive for reading from and writing to a removable non-volatile optical disk, such as a CD-ROM, DVD-ROM, or other optical medium may also be provided. In such cases, each may be connected to bus 1518 by one or more data medium interfaces. As will be further illustrated and described below, the memory 1528 may include at least one program product having a set of program modules (e.g., at least one) configured to perform the functions of the embodiments of the present disclosure.

[0103] A program / utility 1540 having a set (at least one) of program modules 1542 may be stored in memory 1528, and, without limitation, an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data, or any combination thereof, may include an implementation of a networking environment. The program modules 1542 generally perform functions or methodologies, or both, of the embodiments of the present disclosure as described herein.

[0104] The computer system / server 1512 may communicate with one or more external devices 1514, such as a keyboard, pointing device, display 1524, etc.; one or more devices that enable a user to interact with the computer system / server 1512; or any device (e.g., a network card, modem, etc.) that enables the computer system / server 1512 to communicate with one or more other computing devices, or a combination thereof. Such communication can be performed via the input / output (I / O) interface 1522. Furthermore, the computer system / server 1512 may communicate with one or more networks, such as a local area network (LAN), a general wide area network (WAN), or a public network (e.g., the Internet), or a combination thereof, via the network adapter 1520. As shown in the figure, the network adapter 1520 communicates with other components of the computer system / server 1512 via the bus 1518. It should be understood that other hardware and / or software components, or both, which are not shown, can be used in combination with the computer system / server 1512. Examples include, but are not limited to, microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archive storage systems.

[0105] Referring now to Figure 14, an exemplary cloud computing environment 1620 is shown. As shown, the cloud computing environment 1620 comprises one or more cloud computing nodes 1510 that can communicate with local computing devices used by cloud consumers, such as personal digital assistants (PDAs) or mobile phones 1624A, desktop computers 1624B, laptop computers 1624C, or automotive computer systems 1624N, or a combination thereof. The nodes 1510 may communicate with each other. The nodes 1510 may be physically or virtually grouped within one or more networks, such as private clouds, community clouds, public clouds, or hybrid clouds, or a combination thereof, as described above in this specification (not shown). This makes it possible for the cloud computing environment 1620 to provide infrastructure, platforms, or software, or a combination thereof, as a service that does not require cloud consumers to maintain resources on their local computing devices for that purpose. The types of computing devices 1624A-N shown in Figure 14 are for illustrative purposes only, and it should be understood that the computing node 1510 and the cloud computing environment 1620 can communicate with any type of computerized device via any type of network, or a network addressable connection, or both (for example, using a web browser).

[0106] While embodiments of this disclosure have been described in detail with reference to exemplary embodiments, those skilled in the art will understand that various modifications and substitutions can be made to the embodiments without departing from the spirit and scope of this disclosure as set forth in the appended claims.

Claims

1. An authoring method performed by a system that executes a chatbot, an authoring service, and a natural language query service, and authores a conversational service for the chatbot and a database, The system, through the authoring service, receives a database selection from the user via the chatbot interface and connects to a table in the database, wherein the table includes multiple rows and multiple columns. The system, through the authoring service, outputs a question to the user requesting a description of the subject of the table via the chatbot interface; The system receives the description of the subject of the table via the chatbot interface through the authoring service, The system, through the authoring service, outputs a question to the user via the chatbot interface requesting a description of the attributes and annotations of the key columns of the table; The system, through the authoring service, receives the attributes of the key column of the table and the description of the annotation via the chatbot interface, The system, through the authoring service, outputs a question to the user via the chatbot interface requesting a description of the attributes and annotations of another column in the table. The system receives, through the authoring service, the description of the attribute and annotation of the other column in the table via the chatbot interface, The system, through the authoring service, outputs a prompt to the user via the chatbot interface, asking a question about the subject of the table; The system, through the authoring service, receives the question from the user regarding the subject of the table via the chatbot interface; The system, through the natural language query service, converts the question about the subject of the table received from the user via the chatbot interface into an SQL statement suitable for querying the table in the database, using the description of the subject in the table, the descriptions of the attributes and annotations of the key column in the table, and the descriptions of the attributes and annotations of another column in the table, and incorporates the question and the SQL statement into the conversation service. A method that includes [a certain feature].

2. The description of the subject in the table includes a list of several words and synonyms, The description in the annotation of the other column in the table includes a list of several words and synonyms, The annotation for the key column includes the semantic type of the key column. The annotation for the other column includes the semantic type of the other column, If the key column is a column that contains numbers as entry values, the annotation of the key column shall include whether or not the number is suitable for calculation. If the other column is a column that contains numbers as entry values, the annotation for the other column shall include whether or not the number is suitable for calculation. The aforementioned method, The system, through the authoring service, outputs feedback to the user via the chatbot interface, summarizing the description of the subject in the table, the attributes and annotations of the key column in the table, and the attributes and annotations of another column in the table. The method according to claim 1, further comprising:

3. The method of claim 2, wherein the system comprises the steps of: the authoring service outputting a question to the user via the chatbot interface requesting a description of the attributes and annotations of another column in the table; and the authoring service receiving the description of the attributes and annotations of another column in the table via the chatbot interface, the steps of which are repeated for each column in the table.

4. The system, through the authoring service, outputs an answer to the question received from the user via the chatbot interface, The system receives instructions from the user via the chatbot interface through the authoring service regarding whether the answer is correct, partially correct, or incorrect. The method according to claim 2, further comprising:

5. The method according to claim 4, further comprising the steps of: the system responding to an incorrect or partially correct answer by outputting a question via the chatbot interface by the authoring service requesting the user, through the chatbot interface, an alternative description of the subject of the table or the attributes and annotations of another column in the table; the authoring service receiving the alternative description of the subject of the table or the attributes and annotations of another column in the table, through the chatbot interface, and repeating this step; and the natural language query service converting the question regarding the subject of the table received from the user via the chatbot interface into an SQL statement suitable for querying the table in the database using the alternative description of the subject of the table and the alternative descriptions of the attributes and annotations of one or more other columns in the table, and incorporating the question and the SQL statement into the conversation service.

6. A system for authoring conversational services for chatbots and databases, The aforementioned chatbot, An authoring service that guides the user through the process of building the conversational service for the chatbot, A natural language query service that performs natural language processing on the response provided to the authoring service by the user and generates an SQL query for the database service. Execute, The database includes a table to which the authoring service is connected, and the table includes multiple rows and multiple columns. The system, through the authoring service, outputs a question to the user via the chatbot interface requesting a description of the subject of the table, receives the description of the subject of the table from the user, outputs a question to the user requesting a description of the attributes and annotations of the key column of the table, receives the description of the attributes and annotations of the key column of the table from the user, outputs a question to the user requesting a description of the attributes and annotations of another column in the table, receives the description of the attributes and annotations of another column in the table from the user, The system, through the authoring service, outputs a prompt to the user via the chatbot interface, requesting a question from the user regarding the subject of the table, and receives the question from the user regarding the subject of the table. The system converts the question concerning the subject of the table received from the user via the chatbot interface by the natural language query service into an SQL statement suitable for querying the table in the database, using the description of the subject in the table, the descriptions of the attributes and annotations of the key column in the table, and the descriptions of the attributes and annotations of another column in the table, and incorporates the question and the SQL statement into the conversation service.

7. The description of the subject in the table includes a list of several words and synonyms, The description in the annotation of the other column in the table includes a list of several words and synonyms, The annotation for the key column includes the semantic type of the key column. The annotation for the other column includes the semantic type of the other column, If the key column is a column that contains numbers as entry values, the annotation of the key column shall include whether or not the number is suitable for calculation. If the other column is a column that contains numbers as entry values, the annotation for the other column shall include whether or not the number is suitable for calculation. The system according to claim 6, further comprising the authoring service outputting feedback to the user via the chatbot interface summarizing the description of the subject in the table, the descriptions of the attributes and annotations in the key column of the table, and the descriptions of the attributes and annotations in another column in the table.

8. The system according to claim 7, wherein the chatbot interface further comprises a graphical user interface and cloud storage.

9. The system according to claim 7, wherein the system repeatedly outputs a question to the user via the chatbot interface, through the authoring service, requesting a description of the subject of the table or the attributes and annotations of another column in the table for each column in the table, and receives the description of the subject of the table or the attributes and annotations of another column in the table from the user.

10. The system according to claim 7, wherein the system outputs to the user, via the chatbot interface, an answer to the question received from the user, and receives instructions from the user as to whether the answer is correct, partially correct, or incorrect.

11. The system according to claim 10, wherein the system repeatedly steps of: responding to an incorrect or partially correct answer, the authoring service outputs a question to the user via the chatbot interface requesting an alternative description of the subject of the table or the attributes and annotations of another column in the table for one or more columns of the table; the authoring service receives the alternative description of the subject of the table or the attributes and annotations of another column in the table via the chatbot interface; and the natural language query service converts the question regarding the subject of the table received from the user via the chatbot interface into an SQL statement suitable for querying the table in the database using the alternative description of the subject of the table and the alternative description of the attributes and annotations of one or more other columns in the table, and incorporates the question and the SQL statement into the conversation service.

12. A computer program for causing a computer to execute a chatbot, an authoring service, and a natural language query service, and to execute a method for authoring conversational services for a chatbot and a database, wherein the method is The authoring service, via the chatbot interface, receives a database selection from the user and connects to a table in the database, wherein the table includes multiple rows and multiple columns. The authoring service outputs a question to the user via the chatbot interface requesting a description of the subject of the table; The authoring service includes the step of receiving the description of the subject in the table via the chatbot interface, The authoring service includes the step of outputting a question to the user via the chatbot interface requesting a description of the attributes and annotations of the key columns of the table, The authoring service includes the step of receiving the attributes of the key column of the table and the description of the annotation via the chatbot interface, The authoring service includes the step of outputting a question to the user via the chatbot interface requesting the user to describe the attributes and annotations of another column in the table, The authoring service includes the step of receiving the attribute of the other column in the table and the description of the annotation via the chatbot interface, The authoring service provides the user with a prompt via the chatbot interface, asking them to ask a question about the subject of the table. The authoring service includes the step of receiving the question from the user regarding the subject of the table via the chatbot interface, The steps include: the natural language query service converting the question about the subject of the table received from the user via the chatbot interface into an SQL statement suitable for querying the table in the database, using the description of the subject in the table, the descriptions of the attributes and annotations of the key column in the table, and the descriptions of the attributes and annotations of another column in the table, and incorporating the question and the SQL statement into the conversation service; A computer program that includes the following features.

13. The description of the subject in the table includes a list of several words and synonyms, The description in the annotation of the other column in the table includes a list of several words and synonyms, The annotation for the key column includes the semantic type of the key column. The annotation for the other column includes the semantic type of the other column, If the key column is a column that contains numbers as entry values, the annotation of the key column shall include whether or not the number is suitable for calculation. If the other column is a column that contains numbers as entry values, the annotation for the other column shall include whether or not the number is suitable for calculation. The aforementioned method, The authoring service outputs feedback to the user via the chatbot interface, summarizing the description of the subject in the table, the descriptions of the attributes and annotations in the key column of the table, and the descriptions of the attributes and annotations in another column within the table. The computer program according to claim 12, further comprising the following:

14. The computer program according to claim 13, wherein the authoring service outputs a question to the user via the chatbot interface requesting a description of the attributes and annotations of another column in the table, and the authoring service receives the description of the attributes and annotations of another column in the table via the chatbot interface, the steps are repeated for each column in the table.

15. The aforementioned method, The authoring service provides an output of the answer to the question received from the user via the chatbot interface. The authoring service receives instructions from the user via the chatbot interface regarding whether the answer is correct, partially correct, or incorrect. The computer program according to claim 13, further comprising the above.

16. The computer program according to claim 15, further comprising the steps of: in response to an incorrect or partially correct answer, the authoring service outputs a question to the user via the chatbot interface requesting an alternative description of the subject of the table or the attributes and annotations of another column in the table for one or more columns of the table; the authoring service receiving the alternative description of the subject of the table or the attributes and annotations of another column in the table via the chatbot interface, repeating this step; and the natural language query service converting the question concerning the subject of the table received from the user via the chatbot interface into an SQL statement suitable for querying the table in the database using the alternative description of the subject of the table and the alternative descriptions of the attributes and annotations of one or more other columns in the table, and incorporating the question and the SQL statement into the conversation service.

Citation Information

Patent Citations

  • Method and apparatus for forming searching command

    JP1989123320A

  • Natural language interfaces for databases using autonomous agents and thesauri.

    JP2021530818A

  • Natural language processing integrated with database and data storage management

    US20180329993A1

  • Natural language interfaces for databases using autonomous agents and thesauri

    US20200034362A1

  • Interactive interface for analytics

    US20200251111A1