Monitoring bot program (computer-implemented method, program, and computer system for processing user queries using a bot program)
A bot program assists users in formulating queries to understand and correct complex application program output, improving accuracy and efficiency in resolving issues within data processing systems.
Patent Information
- Application Number
- JP2022071657
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-04-25
- Filing Date
- 2022-04-25
- Publication Date
- 2025-07-29
- Estimated Expiration
- 2042-04-25
AI Technical Summary
Complex application programs, such as monitoring programs, generate output data that users often struggle to understand, leading to inefficient problem investigation and correction processes.
A bot program is used to process user queries by detecting status messages, generating bot queries, and providing them to users, allowing for accurate solutions to be determined and applied using a knowledge base.
This approach enhances the accuracy of query processing, reduces the time required for problem resolution, and prevents configuration errors and resource waste in data processing systems.
Smart Images

Figure 0007714294000001 
Figure 0007714294000002 
Figure 0007714294000003
Abstract
Description
Technical Field
[0001] The present invention relates to the field of digital computer systems, and more particularly, to a method for processing user queries using a bot program.
Background Art
[0002] A chatbot is a software application used to conduct online chat conversations via text or text-to-speech, instead of providing direct contact with a user. However, chatbots may require continuous tuning and testing, especially when the input provided by the user is not controlled.
Summary of the Invention
Problems to be Solved by the Invention
[0003] Application programs such as monitoring programs can be so complex that users may not be able to understand the output data of the application programs. Investigating and correcting these problems can become a major part of the user's work.
Means for Solving the Problems
[0004] The following presents an overview in order to provide a basic understanding of one or more embodiments of the present disclosure. This overview is not intended to identify key or critical elements, or to define any scope of particular embodiments or any scope of the claims. Its sole purpose is to present concepts in a simplified form as a prelude to the more detailed description that follows. In one or more embodiments described herein, a device, system, computer-implemented method, apparatus, or computer program product, or a combination thereof, enables the processing of user queries using a bot program.
[0005] Aspects of the present invention relate to a method, system, and computer-readable medium associated with processing user queries using a bot program by executing the bot program, and executing the bot program further includes processing output data of an application program, detecting a status message in the output data, generating a bot query related to the status message, and providing the bot query to the user. In response to providing the bot query to the user, receiving a user query from the user, where the user query is at least partially based on the bot query, and using a knowledge base to determine one or more solutions to the user query and applying a selected one of the solutions.
Brief Description of the Drawings
[0006] Through a more detailed description of some embodiments of the present disclosure in the accompanying drawings, the above and other objects, features, and advantages of the present disclosure will become more apparent. Here, the same reference numerals generally refer to the same components of the embodiments of the present disclosure.
[0007]
Figure 1
[0008]
Figure 2
[0009]
Figure 3
[0010]
Figure 4
[0011]
Figure 5
[0012]
Figure 6
[0013]
Figure 7
[0014]
Figure 8
[0015]
Figure 9
Best Mode for Carrying Out the Invention
[0016] The description of various embodiments of the present invention is presented for illustrative purposes and is not intended to be exhaustive or to limit the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terms used herein are selected to best explain the principles of the embodiments, the practical application, or the technical improvements found in the marketplace, or to enable other practitioners in the art to understand the embodiments disclosed herein.
[0017] The application program can be, for example, a monitoring application program. The monitoring application program can be a computer program. The status message can be the status of a system whose operation is controlled by the application program. The status message can be an error message, a warning message, or a message providing some knowledge. The application program can execute a task, for example, a monitoring task. The task can include the observation, adjustment, control, or verification of the operation of one or more data processing systems, or a combination thereof. The task can execute, for example, one or more controls. Different types of controls can be executed. For example, the control can measure how well the security of the data processing system complies with a set of established standards. Depending on the type of control executed by the application program, different types of application programs can be provided. The application program can be configured to provide output data indicating the result of the task. The output data can be provided periodically by the application program. For example, the application program can be an online monitoring program that continuously or periodically executes a monitoring task. In another example, the application program can execute the monitoring task offline. In one example, the output data can be displayed on the application user interface of the application program. The output data can be displayed on one or more panels on the application user interface. The application user interface can include, for example, a dashboard. The output data can include, for example, the values of specific key performance indicators (KPIs), the operating status of one or more computers of the data processing system, etc.
[0018] However, application programs such as monitoring programs can be so complex that users may not be able to understand the output data of the application program. Investigating and correcting these problems can become a major part of the user's work. This embodiment of the present invention uses a bot program to assist the user in investigating or correcting or both for identified problems in the output data. The bot program is a computer program. Before investigating or correcting the problem, the bot program receives a user query or user input and uses natural language processing (NLP) to understand the user query. However, if the user query is not properly formulated, the bot program may not understand the user query, and due to the nature of the limitations of natural language processing technology, it may either not be able to provide an answer or provide an inaccurate answer to the user query. For example, the user may not know how to describe the problem, and for example, the user may provide too many details that may not be important for the problem, thereby confusing the inference algorithm of the bot program. This embodiment of the present invention solves this problem by controlling the formulation of the user query or by assisting the user in formulating the query. As a result, a technical advantage is provided by enabling the bot program to provide an accurate solution based on the technical judgment that can be made, for example, the technical judgment may require changes to the configuration of the data processing system based on the solution provided by the bot program. Therefore, this embodiment of the present invention prevents configuration errors and waste of processing resources in the data processing system, and prevents potential disasters that configuration errors may cause.
[0019] Another advantage of this embodiment of the present invention is to anticipate any query received from the user by preparing bot queries in advance based on the output data. As a result, processing time is saved by presenting the proposed bot queries to the user so that the initial user query can be appropriate.
[0020] In one embodiment, the stage of processing the output data includes the stage of providing a call database containing data of different types of applications, where the data of a specific type of application includes a procedure of the specific type of application and a predefined query associated with a token associated with the specific type of application, the stage of recognizing the type of the running application program, the stage of searching within the call database for the procedure associated with the recognized type, and the stage of analyzing the output data based on the procedure.
[0021] For example, the call database may include items associated with different types of application programs. Each of these items may also include a procedure of the type of application program represented by that item. The items may further include pairs of queries and tokens, where the tokens represent status messages of the type of application program represented by that item. For example, if the status message includes "There is no data on computer A", the call database may include tokens "No data" and "computer A", and each of the tokens is associated with one or more queries. The tokens and the associated queries may be historical data collected based on previously processed problems in the data processing system. For example, the call database may be updated by storing tokens of the detected status messages associated with the generated bot queries, or user queries received by the bot program, or a combination thereof, according to this method.
[0022] The application program may be configured to execute one or more controls, and each control may be executed using one or more respective procedures. For example, controls such as the quality, accuracy, completeness, etc. of the input data of a data processing system may be associated with the data input procedure. In the present embodiment, the data input procedure is processed to understand the check process of the input data. Also, it is determined whether the output data resulting from the control includes a status message, and if so, which type of status message it indicates.
[0023] This embodiment can be advantageous by enhancing the accuracy of the query and each resulting solution.
[0024] In one embodiment, the step of generating a bot query includes the step of tokenizing the detected status message and the step of obtaining from the call database the query associated with the token, wherein the generated bot query is the obtained query. This embodiment can be advantageous by using previously obtained experience, especially since most status messages and problems can be reproduced over time.
[0025] In one embodiment, the bot program may be configured to access the application program interface of the application program. The step of generating a bot query includes the step of generating candidate bot queries related to the detected status message and the step of specifying the candidate bot queries according to the functions or requirements of the application programming interface or a combination thereof, wherein the generated bot query is the specified candidate bot query.
[0026] For example, the bot program may have access to the history of calls to the functions or requirements of an application programming interface or a combination thereof. To identify possible modifications to a candidate bot query according to the calls, the candidate bot query may be compared to this call history. For example, the modification may consist of adding one or more words to the candidate bot query. This embodiment can further enhance the generated bot query and the accuracy of each resulting solution.
[0027] In one embodiment, the method further includes receiving an initial user query from a user by the bot program, and prompting the user to confirm that the user query is considering a bot query, where the user query is received in response to the prompting step, and the user query is the initial user query or a modification of the initial user query. This can be advantageous, particularly by informing or reminding the user of the existence of a template query provided by the bot program. If the initial query is unspecified compared to the proposed bot query, the user can improve the initial query. Thus, the proposed and applied solutions are accurate.
[0028] In one embodiment, the method further includes displaying output data on an application user interface on a display, and displaying the bot query in a bot dialog window on the display, where the bot dialog window and the application user interface are displayed simultaneously, and the user query is received via the bot dialog window.
[0029] In one embodiment, the application user interface includes either a panel or a dashboard, and the stage of processing the output data includes the stage of processing the displayed output data using an application user interface that can enable atomization of the monitoring of the content of the application user interface. Further, before the user notices a status message, the bot program can be expected to provide a bot query for a given status message. Once the user notices the status message, the user can immediately use the proposed bot query, which can accelerate the process of checking the data processing system.
[0030] In one embodiment, the bot query is a query for discovering the root cause of a status message or a query for providing details of a status message. The query can be, for example, a question. In one example, the bot query can be a specific query that can be used as is by the user to ask a question. In another example, the bot query can be a template or a general question that the user can adapt to the status message detected by the user.
[0031] In one embodiment, the stage of executing the bot program includes receiving a user query, determining a solution, and applying the selected solution. As a result, this can be advantageous because a single execution of the bot program can be used for both constructing a question and communicating with the user to provide a solution to the problem detected by the user.
[0032] In one embodiment, the method further includes the step of initiating a user-bot chat session, during which the reception of the user query, the determination of the solution, and the application of the selected solution are performed. In one example, the bot program may first be executed to construct a question. Another execution of the bot program may be performed to initiate a user-bot chat session. For example, other executions may be performed in response to the user's user request. While it may take the user much more time to analyze the output data and notice the status message, this can be advantageous because the bot program can detect the status message in milliseconds and construct a question. According to this embodiment, in order to save resources, the bot program can be switched off during a time window defined by the difference in error detection times.
[0033] In one embodiment, the bot program is incorporated within an application program.
[0034] In one embodiment, the application program is a client in a client-server configuration that includes an application server connected to the client, the application program is configured to output data using the services of the application server, the bot program is a client in a client-server configuration that includes a bot server connected to the bot program, and the bot program executes the method using one or more services of the bot server.
[0035] In one embodiment, the method further includes the step of storing the bot query in a call database in association with the detected status message, thereby enabling continuous updating or filling of the call database.
[0036] In one embodiment, the method further includes repeating the method for the same application program or for other applications, thereby updating the call database.
[0037] In one embodiment, providing the bot query further includes providing a further bot query to a call database of an application similar to the application program.
[0038] In one embodiment, the application program is any one of an asset management application and a network management application. Further, it may be advantageous to determine the type of the application program so that the processing of the output data can be appropriately adapted. For example, the status messages of a network management application may have a different format compared to the status messages of another type of application.
[0039] FIG. 1 is a schematic diagram of a computing environment 100 according to an example of an embodiment of the present invention.
[0040] The present invention may include various accessible data sources such as a call database 115 and a knowledge base 117, which may include personal data, content, or information that the user desires not to be processed. Personal data includes information that identifies an individual, or sensitive personal information, as well as user information such as tracking or geolocation information. Processing refers to any automated or non-automated action, or set of actions, performed on personal data, such as collection, recording, compilation, organization, storage, adaptation, modification, acquisition, reference, use, disclosure by transmission, distribution, or otherwise making available, combination, restriction, deletion, or destruction. The application server 105 enables approved and secure processing of personal data. The application server 105 provides informed consent along with notification of the collection of personal data, whereby the user can opt-in or opt-out of the processing of personal data. Consent can take several forms. Opt-in consent can impose on the user the requirement to take a positive action before personal data is processed. Alternatively, opt-out consent can impose on the user the requirement to take a positive action to block the processing of personal data before personal data is processed. The application server 105 provides information regarding the personal data and the nature of the processing (e.g., type, scope, purpose, duration, etc.). The application server 105 provides the user with a copy of the stored personal data. The application server 105 enables the correction or completion of inaccurate or incomplete personal data. The application server 105 enables the immediate deletion of personal data.
[0041] Computing environment 100 includes a monitoring device 101, a bot server 103, and an application server 105. The monitoring device 101 can be, for example, a desktop computing device, a smart display, a tablet computing device, a laptop computing device, or other suitable form of client computing device. The bot server 103 can be provided as a single server device or multiple server devices operating in a cloud computing configuration. The application server 105 can be provided as a single server device or multiple server devices operating in a cloud computing configuration. Although shown as separate components, the bot server 103 and the application server 105 can, in another example, be implemented on the same server.
[0042] The monitoring device 101 may be configured to communicate with the bot server 103 and the application server 105 via a communication network. The communication network may include, for example, the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The monitoring device 101 includes a bot program 109 and an application program 107 such as a monitoring application program. The application program 107 includes instructions that, when executed, generate an application user interface on the display device 111. The application program 107 may be configured to display output data indicating the results of predefined controls on the application user interface. The purpose of these controls may be to ensure, for example, the proper development and implementation of the application and to ensure the integrity of the programs and data files as well as the computer operations. These controls may include, for example, system development lifecycle control, program change management control, physical security control for the data processing system, computer operation control, and the like. Each of the controls may be executed using one or more procedures. The application program 107 provides an application programming interface (API) 113. The bot program 109 includes instructions that, when executed, execute at least a part of the present embodiment of the present invention. For example, the bot program 109 includes instructions that, when executed, generate a conversation canvas on the display device 111. The conversation canvas includes a graphical user interface that displays a dialog including a user query from the user 120 and a response determined by the bot program 109. The application user interface and the conversation canvas may be displayed simultaneously. The bot program 109 can access the application programming interface 113 of the application program 107 and determine the calls executed via the API 113. In one example, the bot program 109 is a separate program executed separately from the application program 107.In another example, the bot program 109 is a module of the application program 107 that can be executed simultaneously with the application program 107. For example, the bot program 109 may be incorporated within the application program 107. The bot program 109 can access the call database 115 and the knowledge base 117. The call database 115 contains data on different types of applications. The data for a particular type of application includes predefined queries associated with the procedures of the particular type of application and tokens associated with the particular type of application. For example, if the type of the application is a network management application, the data stored in the call database 115 for that type may include procedures for controlling network functions such as network traffic and network problems, and the queries are associated with tokens related to network status messages.
[0043] FIG. 2 is a flowchart of a method for processing user queries using a bot program according to an example of the present embodiment of the present invention. For the purpose of explanation, the method described in FIG. 2 can be implemented in the system shown in FIG. 1, but is not limited to this implementation. The method of FIG. 2 can be executed, for example, by the monitoring device 101.
[0044] In one embodiment, the method processes the output data of the running application program 107 in step 201. For example, the method can use the bot program 109 to process the output data while the application program 107 is running. In this example, the bot program 109 can be automatically started when the execution of the application program 107 is started. As a result, the method enables continuous assistance to the user. In another example, the bot program 109 can be started at any point during the execution of the application program 107. As a result, the method provides on-demand assistance via the bot program 109.
[0045] The output data may include, for example, values of attributes, where the attributes depict the results of control being executed by application program 107. For example, an attribute may be named "accessible", which indicates whether the computer is accessible or not. By reading the value of the "accessible" attribute associated with a given computer, bot program 109 can determine whether the computer is accessible or not. In one scenario, if the computer is not accessible, the value of the "accessible" attribute may be regarded as a status message. In another example, the output data may further include values of one or more KPIs, where each of the KPIs is associated with a flag or another indicator that shows whether the value of that KPI is a normal value or an incorrect / problematic value. By reading the indicator associated with each of the KPIs, the bot program can determine whether there is a problem associated with the KPI. If the value of the associated KPI is not as expected, the value of the indicator may be regarded as a status message. In another example, the output data may display a message indicating the status of each control, and if a problem is detected by the control, a status message may be provided. The status message may include a specific format (e.g., starting with the word "error" in the case of an error message). In this scenario, bot program 109 can analyze the displayed message and search for a message starting with "error".
[0046] In one example, the bot program 109 utilizes the executed control procedure to determine whether any of the displayed information associated with each of the controls is in error. For example, the bot program 109 can analyze the code of the procedure to identify the output calls or output functions, and can identify a message that is a status message, for example, using NLP techniques. Further, by comparing the output data with those identified messages, the bot program 109 can determine whether there is a status message.
[0047] In one embodiment, the method, at step 203, detects one or more status messages within the output data. A status message can be an error message, a warning message, or a message that provides some knowledge. In one scenario, for the detected status message written, the user may need to find a solution or at least understand the status message. In this scenario, the user can communicate with the bot program 109 and ask questions related to the status message to obtain a response. However, formulating a question that can be processed by a computer presents a difficult task because the details provided by the user may be insufficient, for example, either the details provided are too few or more details are provided that are irrelevant to the status message. This embodiment of the present invention solves this problem by anticipating user queries and providing suggestions. Therefore, the method, at step 205, enables the bot program 109 to generate one or more bot queries associated with each of the detected status messages.
[0048] In one first query determination example, the method tokenizes the detected status message into tokens using the bot program 109. In this example, the method searches each of the tokens in the call database 115 using the bot program 109 to identify the query associated with the token. The method uses the query identified as the generated query in step 205.
[0049] In one second query determination example, the method examines the output procedure associated with the status message using the bot program 109 and infers the bot query, for example using NLP techniques. In this example, the bot program 109 may compare the documentation or comments associated with the output procedure to generate the bot query.
[0050] In one embodiment, the method provides the bot query to the user in step 207. The bot query may be displayed, for example, on the same application user interface or in a separate conversation window of the bot program 109. The bot query may be provided in association with each status message. In this way, the user has access to the status message and the proposed bot query. As a result, in this way, the user can formulate the user query more accurately and make it more efficiently processed by the bot program 109.
[0051] In one embodiment, in response to providing the bot query to the user in step 207, the method utilizes the bot program 109 to receive a user query from the user in step 209, and the user query is based on the bot query of step 205. For example, the user query may be related to each detected status message among the status messages detected by the bot program 109 (i.e., the user detected the same status message as that detected by the bot program 109). In another example, the user query may be related to a subset of the detected status messages. For example, the user may only notice or understand that a part of the detected status messages are actually status messages. In both cases, the user query may be a question to understand the status message or to find the root cause and thus the solution to the status message.
[0052] In one embodiment, the method utilizes the bot program 109 to determine one or more solutions to the user query using the knowledge base in step 211. For example, the bot program 109 may use natural language understanding (NLU), natural language generation (NLG), machine learning, deep learning, or other artificial techniques to determine the solution.
[0053] In one embodiment, the method utilizes the bot program 109 to apply at least one selected solution among the solutions in step 213. In one example, the method provides a prompt to the user to select at least one of the solutions. In response to being prompted, the bot program 109 may receive the selection of at least one solution. In another example, the bot program 109 may automatically select one of the solutions. For example, the bot program 109 may use different types of selection algorithms including a selection algorithm to select the most commonly provided solution or to randomly select one of the solutions.
[0054] FIG. 3 is a flowchart of a method for processing output data of a monitoring application program in execution, according to an example of the present embodiment of the present invention. For the purpose of explanation, the method described in FIG. 3 can be implemented in the system shown in FIG. 1, but is not limited to this implementation. The method of FIG. 3 can be executed, for example, by the monitoring device 101.
[0055] In one embodiment, the method uses a bot program 109 to determine, in step 301, the type of the monitoring application program in execution. In one example, the bot program 109 can use application metadata depicting the monitoring application program (e.g., application 107) to determine the type of the monitoring application program. In another example, the bot program 109 can recognize user interface features of the application user interface displayed by the monitoring application program. The user interface features can indicate the type of the monitoring application program. For example, the bot program 109 can recognize a panel of the monitoring application program as "License Management Application - Dashboard" indicating that the monitoring application program is an asset management application.
[0056] In one embodiment, the method searches, in the call database 115, for procedures associated with the recognized type at step 303. The procedures can include, for example, input procedures that check whether the input data is accurate, complete, and correct. The procedures can include, for example, output procedures that check whether the output is accurate and complete. Each of the procedures can output a message indicating the result of the process. These messages can include status messages. Each type of message can have a format. For example, a status message can have a format that starts with the word "error", for example. By analyzing these procedures, or their metadata, or a combination thereof, the method can use the bot program 109 to identify the format of the status message, or an error code associated with a different error, or a combination thereof.
[0057] In one embodiment, the method analyzes the output data based on the procedures at step 305. For example, the method uses the bot program 109 to search within the application user interface for a message having the format of the status message of the determined procedure. In another example, the bot program can search for an error code within the application user interface.
[0058] FIG. 4 is a flowchart of a method for generating a bot query according to an example of this embodiment of the present invention. For purposes of illustration, the method described in FIG. 4 can be implemented in the system shown in FIG. 1, but is not limited to this implementation. The method of FIG. 4 can be executed, for example, by the monitoring device 101.
[0059] In one embodiment, the method generates, at step 401, a candidate bot query associated with the detected status message. For example, the candidate bot query can be determined by tokenizing the detected status message, as described with reference to FIG. 2 for example, and the candidate bot query can be a query associated with these tokens in the call database 115. For example, if the detected status message indicates that "there is no data in computer A", the tokens can include "no data" and "computer A". By searching the call database 115 for possible questions about those tokens, the following candidate bot queries can be identified. That is, "How to check whether the software scan has been completed", "How to check the date of the last successful import", "How to check whether XXX has been launched and is running".
[0060] In one embodiment, the method specifies, at step 403, the candidate bot query according to the function or requirement of the application programming interface or a combination thereof. Continuing with the above example, the three queries can be specified as follows. In one scenario, since the API has previously checked whether computer A is running Windows®, the query "How to check whether the software scan has been completed" can be specified to be "How to check whether the software scan for Windows has been completed". In another scenario, since the API has previously checked whether computer A belongs to computer group X, the query "How to check the date of the last successful import" can be specified to be "How to check the date of the last successful import for computer group X". In another scenario, since the API has previously checked that computer A is running the APP agent, the query "How to check whether XXX has been launched and is running" can be specified to be "How to check whether the APP agent has been launched and is running".
[0061] In one embodiment, the method provides a specified candidate bot query at step 405. For example, the method uses bot program 109 to display the specified candidate bot query on the application user interface or on the conversation window.
[0062] FIG. 5 is a flowchart of a method for controlling a user query according to an example of this embodiment of the present invention. For purposes of explanation, the method described in FIG. 5 can be implemented in the system shown in FIG. 1, but is not limited to this implementation. The method of FIG. 5 can be executed, for example, by monitoring device 101.
[0063] In one embodiment, the method receives an initial user query from the user at step 501. Continuing with the example of FIG. 4, the user may select the question "How to check if the software scan for Windows is complete" and modify the question to start a conversation with bot program 109. In this scenario, since the machine is managed by the user and the user knows that computer A is running Windows 2012, the question can be corrected as follows: "How to check if the software scan for Windows 2012 is complete".
[0064] In one embodiment, at step 503, the method prompts the user to confirm that the user query takes into account the bot query, as defined, for example, in FIG. 4. This can be advantageous since the user may not have looked at the bot query provided by bot program 109.
[0065] In one embodiment, at step 505, the method receives a user query in response to being prompted. The user query can be an initial user query or a modification of the initial user query. For example, the user can change the initial query if the proposed query appears to be more accurately formulated. However, the user can confirm that the initial query is actually accurate, for example, because the user has already used the bot query for formulating the initial query.
[0066] Continuing with the above example, the method can find a solution to the question "How to check if the software scan for Windows 2012 has completed". In this example, the bot program 109 can provide, for example, three links (L1, L2, and L3) to documentation that can answer the user's question: L1) Known "no data" scan errors for Windows 2012, L2) Software scan output verification, and L3) Health check procedures for agents running on Windows.
[0067] FIG. 6 is a flowchart of a method for processing a user query using a bot program according to an example of the present embodiment of the invention. For illustrative purposes, the method described in FIG. 6 can be implemented in the system shown in FIG. 1, but is not limited to this implementation.
[0068] In step 601, user 620 opens application program 107. The bot program 109 may be incorporated into the application program 107. This step may result in the display of the application panel 621. In step 603, the bot program 109 (also referred to as a chatbot) detects the application panel 621. In step 603, the bot program 109 can use the application API (e.g., API 113) of the application program 107 to process the output data of the application program 107 and construct a question list 623 using the call database 622. The constructed question list 623 can be provided to the user 620. In step 605, the user 620 can start a conversation with the bot program 109 using the preliminary questions. In step 607, the bot program 109 can analyze the preliminary questions and propose one or more solutions 625 to the user 620 using the knowledge base 624. The solution can be, for example, to configure the application server 627. The user 620 can select a solution from the proposed solutions or confirm the proposed solution in step 609. In step 611, the bot program 109 can apply the selected or confirmed solution, for example, by configuring the application server 627.
[0069] FIG. 7 represents a general computerized system 700 suitable for implementing at least a portion of the method steps as included in the present disclosure.
[0070] The methods described herein are at least partially non - interactive and are understood to be automated by a computerized system such as a server or an embedded system. However, in an exemplary embodiment, the methods described herein may be implemented in a (partially) interactive system. These methods may further be implemented in software 712, 722 (including firmware 722), hardware (processor) 705, or a combination thereof. In an exemplary embodiment, the methods described herein are implemented as a program executable in software and are executed by a special - purpose or general - purpose digital computer, such as a personal computer, a workstation, a minicomputer, or a mainframe computer. Thus, the most common system 700 includes a general - purpose computer 701.
[0071] In an exemplary embodiment, from a hardware architecture perspective, as shown in FIG. 7, the computer 701 includes a processor 705, a memory (main memory) 710 coupled to a memory controller 715, and one or more input and / or output, or both (I / O) devices (or peripherals) 10, 745 communicatively coupled via a local input - output controller 735. The input - output controller 735 can be one or more buses, or other wired or wireless connections, as is known in the art, but is not limited thereto. The input - output controller 735 may have additional elements such as controllers, buffers (caches), drivers, repeaters, and receivers to enable communication, but these are omitted for simplicity. Further, the local interface may include address, control, or data connections, or a combination thereof, to enable proper communication between the aforementioned components. As described herein, the I / O devices 10, 745 may generally include any generalized cryptographic card or smart card known in the art.
[0072] Processor 705 is a hardware device for executing software, specifically stored in memory 710. Processor 705 can be any custom or commercially available processor, a central processing unit (CPU), an auxiliary processor among several processors associated with computer 701, a semiconductor-based microprocessor (in the form of a microchip or chipset), or generally any device for executing software instructions.
[0073] Memory 710 can include volatile memory elements (e.g., random access memory (RAM) such as DRAM, SRAM, SDRAM, etc.) and non-volatile memory elements (e.g., ROM, erasable programmable read-only memory (EPROM), electronically erasable programmable read-only memory (EEPROM), programmable read-only memory (PROM), one or a combination thereof. It should be noted that memory 710 can have a distributed architecture where various components are located remotely from each other but can be accessed by processor 705.
[0074] The software in memory 710 can include one or more separate programs, each of which includes an ordered list of executable instructions for implementing a logical function, particularly the functions included in embodiments of the present invention. In the example of FIG. 7, the software in memory 710 includes instruction 712, for example, instructions for managing a database such as a database management system.
[0075] The software in memory 710 also typically includes a suitable operating system (OS) 711. OS 711 essentially controls the execution of other computer programs, such as software 712 in some cases, for implementing the methods described herein.
[0076] The method described in this specification can be in the form of a source program 712, an executable program 712 (object code), a script, or any other entity including a set of instructions 712 to be executed. If there is a source program, it is necessary to convert the program through a compiler, assembler, interpreter, etc., which may or may not be included in the memory 710 in order to operate properly in relation to the OS 711. Further, this method can be written as an object-oriented programming language having classes of data and methods, or as a procedural programming language having routines, subroutines, or functions, or a combination thereof.
[0077] In an exemplary embodiment, a conventional keyboard 750 and mouse 755 may be coupled to an input / output controller 735. Other output devices such as I / O device 745 may include input devices such as, but not limited to, printers, scanners, and microphones. Finally, I / O devices 10, 745 may further include devices that communicate both input and output, such as, but not limited to, a network interface card (NIC) or a modem (for access to other files, devices, systems, or networks), a radio frequency (RF) or other transceiver, a telephone interface, a bridge, and a router. I / O devices 10, 745 may be any generalized cryptographic card or smart card known in the art. System 700 may further include a display controller 725 coupled to a display 730. In an exemplary embodiment, system 700 may further include a network interface for connection to a network 765. Network 765 may be an IP-based network for communication between computer 701 and any external servers and clients, etc., via a broadband connection. Network 765 transmits and receives data between computer 701 and external system 30, which may be involved in performing some or all of the steps of the methods described herein. In an exemplary embodiment, network 765 may be an administrative IP network managed by a service provider. Network 765 may be implemented wirelessly, for example, using wireless protocols and technologies such as WiFi, WiMAX, etc. Network 765 may also be a packet-switching network such as a local area network, a wide area network, a metropolitan area network, an Internet network, or other similar types of network environments.Network 765 can be a fixed wireless network, a wireless local area network W(LAN), a wireless wide area network (WWAN), a personal area network (PAN), a virtual private network (VPN), an intranet, or other suitable network systems, and includes devices for receiving and transmitting signals.
[0078] When computer 701 is a PC, a workstation, or an intelligent device, etc., the software in memory 710 may further include a basic input / output system (BIOS) 722. The BIOS is a set of basic software routines that initialize and test the hardware during startup, start the OS 711, and support the transfer of data between hardware devices. The BIOS is stored in the ROM so that it can be executed when computer 701 is started.
[0079] When computer 701 is operating, processor 705 is configured to execute software 712 stored in memory 710, communicate data with memory 710, and generally control the operation of computer 701 according to the software. The methods described in this specification, and in whole or in part (typically the latter) in OS 711, are read by processor 705, buffered in processor 705 in some cases, and then executed.
[0080] As shown in FIG. 7, when the systems and methods described in this specification are implemented in software 712, the method can be stored on any computer-readable medium such as storage 720 by using or in connection with any computer-related system or method. Storage 720 may include disk storage such as HDD storage.
[0081] Although this disclosure includes a detailed description regarding cloud computing, it is understood that implementations of the teachings recited herein are not limited to cloud computing environments. Rather, embodiments of the invention may be implemented in conjunction with other types of computing environments now known or later developed.
[0082] Cloud computing is a service delivery model for enabling 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 released with minimal management effort or service provider interaction. This cloud model may include at least five characteristics, at least three service models, and at least four deployment models.
[0083] The characteristics are as follows.
[0084] On-demand self-service: A cloud consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed, automatically, without requiring human interaction with a service provider.
[0085] Broad network access: The capabilities are available over a network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).
[0086] Resource Pool: The computing resources of the provider are pooled and used in a multi-tenant model to provide services to multiple consumers, and different physical and virtual resources are dynamically allocated and reallocated according to demand. Generally, consumers have no control or knowledge of the exact location of the resources provided, but there is a sense of 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).
[0087] Rapid Elasticity: In some cases, automatically and for rapid scale-out, capabilities can be provisioned quickly and flexibly, and released quickly for rapid scale-in. For consumers, in many cases, the capabilities available for provisioning appear to be unlimited and can be purchased in any quantity at any time.
[0088] Measured Service: Cloud systems automatically control and optimize resource usage by leveraging measured capabilities at some 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, providing transparency to both the provider and the consumer of the services utilized.
[0089] The service model is as follows.
[0090] Software as a Service (SaaS): The capabilities provided to consumers are for using the provider's applications running on the cloud infrastructure. The applications are accessible from various client devices through a client interface such as a web browser (e.g., web-based email). Consumers do not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even the individual application capabilities, although limited user-specific application configuration settings may be an exception.
[0091] Platform as a Service (PaaS): The capabilities provided to the consumer are to deploy, on the cloud infrastructure, applications created or acquired by the consumer using programming languages and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure, which includes the network, servers, operating systems, or storage, but has control over the deployed applications and, in some cases, the applications hosting the environmental configuration.
[0092] Infrastructure as a Service (IaaS): The capabilities provided to the consumer are to provision processing, storage, networks, and other fundamental computing resources where the consumer can deploy and run an operating system and any software that may include applications. The consumer does not manage or control the underlying cloud infrastructure, but has control over the operating system, storage, deployed applications, and, in some cases, limited control over selected networking components (e.g., host firewalls).
[0093] The deployment models are as follows.
[0094] Private cloud: The cloud infrastructure operates only for an organization. It can be managed by the organization or a third party and can exist on-premises or off-premises.
[0095] Community Cloud: The cloud infrastructure is shared by multiple organizations and supports a specific community with shared interests (e.g., mission, security requirements, policies, and compliance considerations). It can be managed by an organization or a third party and can exist on-premises or off-premises.
[0096] Public Cloud: The cloud infrastructure is available to the general public or a large industrial group and is owned by an organization that sells cloud services.
[0097] Hybrid Cloud: The cloud infrastructure remains a distinct entity but is a composite of two or more clouds (private, community, or public) joined together by standardized or proprietary technologies (e.g., cloud bursting for load balancing between clouds) that enable data and application portability.
[0098] The cloud computing environment is a service that focuses on statelessness, loose coupling, modularity, and semantic interoperability. At the core of cloud computing, there is an infrastructure that includes a network composed of interconnected nodes.
[0099] Referring now to FIG. 8, an exemplary cloud computing environment 1050 is shown. As shown, cloud computing environment 1050 includes one or more cloud computing nodes 1010 that may communicate with a local computing device used by a cloud consumer, such as, for example, a mobile information terminal (PDA) or cellular telephone 1054A, a desktop computer 1054B, a laptop computer 1054C, or an automotive computer system 54N, or a combination thereof. Nodes 1010 may communicate with one another. The nodes may be physically or virtually grouped (not shown) in one or more networks such as private clouds, community clouds, public clouds, or hybrid clouds, or combinations thereof as described above. Thereby, cloud computing environment 1050 can provide infrastructure as a service, platform as a service, software as a service, or combinations thereof, such that a cloud consumer need not maintain resources on a local computing device. It should be understood that the types of computing devices 1054A - N shown in FIG. 8 are for illustration only, and that cloud computing nodes 1010 and cloud computing environment 1050 can communicate with any type of computerized device through any type of network or network addressable connection (e.g., using a web browser) or both.
[0100] Referring now to FIG. 9, a set of functional abstractions provided by cloud computing environment 1050 (FIG. 8) is shown. It should be understood in advance that the components, layers, and functions shown in FIG. 9 are for illustration only and that embodiments of the invention are not limited thereto. As shown, the following layers and corresponding functions are provided.
[0101] The hardware and software layer 1060 includes hardware and software components. Examples of hardware components include mainframe 1061, RISC (Reduced Instruction Set Computer) architecture-based server 1062, server 1063, blade server 1064, storage device 1065, and network and networking components 1066. In some embodiments, the software components include network application server software 1067 and database software 1068.
[0102] The virtualization layer 1070 provides an abstraction layer from which the following example virtual entities can be provided: virtual server 1071, virtual storage 1072, virtual network 1073 including a virtual private network, virtual applications and operating systems 1074, and virtual client 1075.
[0103] In one example, the management layer 1080 may provide the functions described below. Resource provisioning 1081 provides for the dynamic procurement of computing resources and other resources utilized to execute tasks within a cloud computing environment. Measurement and pricing 1082 provides for cost tracking when resources are utilized within the cloud computing environment and billing or invoicing for the consumption of these resources. In one example, these resources may include application software licenses. Security provides for the authentication of cloud consumers and protection for tasks as well as data and other resources. The user portal 1083 provides access to the cloud computing environment for consumers and system administrators. Service level management 1084 provides for cloud computing resource allocation and management such that the required service levels are met. Service level agreement (SLA) planning and fulfillment 1085 provides for the pre - arrangement and procurement of cloud computing resources for which future requirements are anticipated in accordance with the SLA.
[0104] The workload layer 1090 provides examples of functionality that the cloud computing environment may utilize. Examples of workloads and functions that may be provided from this layer include application selection based on mapping and navigation 1091, software development and life cycle management 1092, virtual classroom education delivery 1093, data analysis processing 1094, transaction processing 1095, and query processing by bot programs (QPBP) 1096, as described with reference to, for example, FIGS. 2, 3, 4, 5, or 6, in accordance with the present subject matter.
[0105] The present subject matter may include the following clauses.
[0106] [Clause 1] A stage of executing a bot program, a stage of processing output data of an application program being executed, and detecting a status message in the output data; generating a bot query related to the status message; providing the bot query to a user; and executing, receiving, in response to the providing of the bot query to the user, a user query from the user, the user query being based on the bot query; determining, by the bot program, one or more solutions to the user query using a knowledge base; applying, by the bot program, a selected solution of the solutions; A computer-implemented method comprising.
[0107] [Article 2] The step of processing the output data provides a call database containing data of different types of applications, the data of a specific type of application including a procedure of the specific type of application and a predefined query associated with a token associated with the specific type of application; recognizing the type of the running application program; searching for the procedure associated with the recognized type in the call database; and analyzing the output data based on the procedure. The method according to Article 1.
[0108] [Article 3] The step of generating the bot query includes tokenizing the detected status message and obtaining, from the call database, the query associated with the token, the generated bot query being the obtained query. The method according to Article 2.
[0109] [Article 4] The bot program is configured to access an application program interface of the application program, and the step of generating the bot query includes: generating a candidate bot query related to the detected status message; and specifying the candidate bot query according to a function or requirement of the application programming interface or a combination thereof, wherein the generated bot query is the specified candidate bot query. The method according to any one of clauses 1 to 3 above.
[0110] [Clause 5] The step in which the bot program receives an initial user query from the user, and prompts the user to confirm that the user query takes the bot query into consideration, wherein the user query is received in response to the prompting step, and the user query is the initial user query or a modification of the initial user query. The method according to any one of clauses 1 to 4 above, further comprising the prompting step.
[0111] [Clause 6] The step of displaying the output data on an application user interface on a display, and the step of displaying the bot query on a bot dialog window on the display, wherein the bot dialog window and the application user interface are displayed simultaneously, and the user query is received via the bot dialog window. The method according to any one of clauses 1 to 5 above, further comprising the displaying step.
[0112] [Clause 7] The method according to clause 6, wherein the application user interface includes any one of a panel and a dashboard, and the processing of the output data includes the step of processing the displayed output data using the application user interface.
[0113] [Clause 8] The method according to any one of clauses 1 to 7 above, wherein the bot query is a query for discovering a root cause of the status message or a query for providing details of the status message.
[0114] [Clause 9] The method according to any one of clauses 1 to 8 above, wherein the step of executing the bot program includes receiving the user query, determining the solution, and applying the selected solution.
[0115] [Clause 10] The method according to any one of clauses 1 to 8 above, further comprising a step of starting a user-bot chat session, wherein the receiving of the user query, the determination of the solution, and the application of the selected solution are performed during the session.
[0116] [Clause 11] The method according to any one of clauses 1 to 10 above, wherein the bot program is incorporated into the application program.
[0117] [Clause 12] The method according to any one of clauses 1 to 11 above, wherein the application program is the client in a client-server configuration including an application server connected to a client, the application program is configured to output data using the service of the application server, the bot program is the client in a client-server configuration including a bot server connected to the bot program, and the bot program executes the method using one or more services of the bot server.
[0118] [Clause 13] The method according to any one of clauses 2 to 12 above, further comprising a step of storing the bot query in the call database.
[0119] Article 14 The method according to clause 13, further comprising the step of repeating said method for the same application program or for other applications, thereby updating said bot base.
[0120] Article 15 The method according to clause 14, wherein the step of providing said bot query further comprises the step of providing further bot queries of applications similar to said application program from said call database.
[0121] Article 16 The method according to any one of the preceding clauses 1 to 15, wherein said application program is any one of an asset management application and a network management application.
[0122] The present invention can be a system, method, device, or computer program product or a combination thereof at any possible technical detail level of integration. The computer program product can include a computer-readable storage medium (or media) having computer-readable program instructions for causing a processor to execute aspects of the present invention.
[0123] A computer-readable storage medium can be a tangible device that holds and stores instructions for use by an instruction execution device. A computer-readable storage medium can be, for example, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or may not be limited to any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media can also include the following, portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disks (DVDs), memory sticks, floppy disks, mechanically encoded devices such as punch cards or raised structures in grooves in which instructions are recorded, and any suitable combination of the foregoing. A computer-readable storage medium as used herein shall not be construed as a transient signal per se, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagated through a waveguide or other transmission medium (e.g., an optical pulse passing through a fiber optic cable), or an electrical signal transmitted through a wire.
[0124] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to respective computing / processing devices via a network, such as, for example, the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof, or can be downloaded to an external computer or an external storage device. The network can include a copper transmission cable, an optical transmission fiber, a wireless transmission, a router, a firewall, a switch, a gateway computer, or an edge server, or a combination thereof. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and transfers the computer-readable program instructions for storage in a computer-readable storage medium within each respective computing / processing device.
[0125] The computer-readable program instructions for carrying out the operations of the present invention may be source code or object code written in any combination of one or more programming languages, including assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, configuration data for integrated circuits, or object-oriented programming languages such as Smalltalk®, C++, or the like, and conventional procedural programming languages such as the "C" programming language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer, or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (e.g., through the Internet using an Internet service provider). In some embodiments, to carry out aspects of the present invention, for example, an electronic circuit including a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA) may execute the computer-readable program instructions by utilizing the state information of the computer-readable program instructions to personalize the electronic circuit.
[0126] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.
[0127] These computer-readable program instructions can be provided to a computer's processor or other programmable data processing apparatus to cause a machine. Thereby, the instructions executed via the processor of the computer or other programmable data processing apparatus form means for implementing the functions / operations specified in one or more blocks of the flowchart and / or block diagram. Also, these computer-readable program instructions can be stored in a computer-readable storage medium having stored therein instructions for implementing the manner of functions / operations specified in one or more blocks of the flowchart and / or block diagram, such that a computer, programmable data processing apparatus, or other device or combination thereof can function in a particular manner.
[0128] The computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device, causing a series of operational steps to be performed on the computer, other programmable apparatus, or other device to generate a computer-implemented process. Thereby, the instructions executed on the computer, other programmable apparatus, or other device implement the functions / operations specified within one or more blocks of the flowchart and / or block diagram.
[0129] The flowcharts and block diagrams in the drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagram may represent a module, segment, or portion of instructions that includes one or more executable instructions for implementing the specified (logical function. In some alternative implementations, the functions described in the blocks may occur out of the order described in the figures. For example, two blocks shown in succession may, in fact, be implemented as one step, executed simultaneously, or substantially simultaneously, in a partially or wholly temporally overlapping manner, or the blocks may be executed in the reverse order depending on the related functions. It should also be noted that each block of the block diagram or flowchart diagram, or combinations of blocks in the block diagram or flowchart diagram or both, can be implemented by a special-purpose hardware-based system that performs the specified functions or acts or a combination of special-purpose hardware and computer instructions.
[0130] References in this specification to "one embodiment," "an embodiment," "exemplary embodiment," etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but not every embodiment necessarily includes the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is within the knowledge of those skilled in the art to affect such feature, structure, or characteristic in connection with multiple other embodiments, whether or not explicitly described.
[0131] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, unless the context clearly dictates otherwise, the singular forms "a", "an", and "the" are intended to include the plural forms as well. The terms "comprises", "comprising", or both, as used herein, specify the presence of the stated feature, integer, step, operation, element, or component, or combination thereof, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or groups thereof, or combinations thereof.
[0132] The description of various embodiments of the invention is presented for purposes of illustration and is not intended to be exhaustive or to limit the invention to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The terms used herein are chosen in order to best explain the principles of the embodiments, the practical application, or technical improvement of technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.
Claims
1. A computer-implemented method for processing user queries using a bot program, comprising: executing the bot program, wherein the step of executing the bot program further comprises: processing output data of an application program; detecting a status message in the output data; generating a bot query related to the status message; providing the bot query to a user; and receiving a user query from the user in response to the providing of the bot query to the user, wherein the user query is at least partially based on the bot query; determining one or more solutions to the user query using a knowledge base; applying a selected solution among the one or more solutions. A method comprising the above steps.
2. The step of processing the output data of the application program further comprises: providing a call database containing data corresponding to different types of applications, wherein the data of a specific type of application includes procedures of the specific type of application and predefined queries associated with tokens associated with the specific type of application; executing recognition of the type of the application program; searching for procedures associated with the type of the application program in the call database; analyzing the output data at least partially based on the procedures associated with the recognized type. The method according to claim 1, comprising the above steps.
3. The step of generating the bot query related to the status message further comprises: tokenizing the detected status message; obtaining, from the call database, the query associated with the token, wherein the generated bot query is the obtained query. The method according to claim 2, comprising the above steps.
4. storing the bot query in the call database; updating the call database at least partially based on the bot query. The method according to claim 2, further comprising
5. The step of providing the bot query further comprises providing, from the call database, additional bot queries of applications associated with the application program The method according to claim 4.
6. further comprising configuring the bot program to access an application programming interface of the application program, and the step of generating the bot query further comprises generating candidate bot queries related to the detected status message; and specifying the candidate bot queries at least partially based on requirements of the application programming interface, wherein the generated bot query is the specified candidate bot query The method according to any one of claims 1 to 5.
7. prompting the user to confirm that the user query takes the bot query into account; and receiving an initial user query from the user, wherein the user query corresponds to a modification of the initial user query The method according to any one of claims 1 to 5, further comprising
8. displaying the output data on an application user interface on a display; and displaying the bot query in a bot dialog window on the display, wherein the bot dialog window and the application user interface are displayed simultaneously, and the user query is received via the bot dialog window The method according to any one of claims 1 to 5, further comprising
9. The method according to claim 8, wherein the application user interface includes a panel and a dashboard, and the processing of the output data includes processing the displayed output data using the application user interface
10. The method according to any one of claims 1 to 5, wherein the bot query includes a first query for discovering a root cause of the status message and a second query for providing details of the status message
11. The method according to any one of claims 1 to 5, further comprising a step of starting a user-bot chat session, wherein receiving the user query, determining the one or more solutions, and applying the selected solution occur during the user-bot chat session.
12. The method according to any one of claims 1 to 5, further comprising a step of incorporating the bot program into the application program.
13. A step of configuring the application program to output data using the service of an application server, wherein the application program is a client in a first client-server configuration including the application server connected to a client, and calibrating; A step of configuring the bot program as a client in a second client-server configuration including a bot server connected to the bot program; The method according to any one of claims 1 to 5, further comprising.
14. The method according to any one of claims 1 to 5, wherein the application program is selected from the group consisting of an asset management application and a network management application.
15. A computer program for processing a user query using a bot program, which causes a processor to perform a procedure for executing the bot program, and the procedure for executing the bot program further comprises a procedure for processing output data of the application program; a procedure for detecting a status message in the output data; generating a bot query related to the status message; providing the bot query to the user, including a procedure; a procedure for receiving a user query from the user in response to providing the bot query to the user, wherein the user query is at least partially based on the bot query; a procedure for determining one or more solutions to the user query using a knowledge base; executing a procedure for applying a selected solution among the one or more solutions. Computer program.
16. The processor further A procedure for providing a call database containing data corresponding to different types of applications, wherein the data of a specific type of application includes a procedure of the specific type of application and a predefined query associated with a token associated with the specific type of application, and a procedure; A procedure for performing recognition of the type of the application program; A procedure for searching within the call database for a procedure associated with the recognized type; A procedure for analyzing the output data based at least in part on the procedure associated with the type of the application program, to cause to execute; The computer program according to claim 15.
17. To further cause the processor to A procedure for displaying the output data on an application user interface on a display; A procedure for displaying the bot query in a bot dialog window on the display, wherein the bot dialog window and the application user interface are displayed simultaneously, and the user query is received via the bot dialog window, to cause to execute; The computer program according to claim 15 or 16.
18. A computer system for processing a user query using a bot program, the computer system having one or more computer processors, one or more computer-readable storage devices, and program instructions stored on the one or more computer-readable storage devices for execution by the one or more computer processors, the stored program instructions Program instructions for executing a bot program, and executing the bot program further Processing output data of an application program; Detecting a status message in the output data; Generating a bot query associated with the status message; Program instructions including program instructions for providing the bot query to a user; Program instructions for receiving a user query from the user in response to providing the bot query to the user, wherein the user query is at least partially based on the bot query, and Program instructions for determining one or more solutions to the user query using a knowledge base, and Program instructions for applying a selected solution among the one or more solutions, and having A computer system.
19. The stored program instructions further include Program instructions for providing a call database including data corresponding to different types of applications, wherein the data of a specific type of application includes procedures of the specific type of application and predefined queries associated with tokens associated with the specific type of application, and Program instructions for performing recognition of the type of the application program, and Program instructions for searching for procedures associated with the recognized type in the call database, and Program instructions for analyzing the output data based at least in part on the procedures associated with the type of the application program, and having The computer system according to claim 18.
20. The stored program instructions further include Program instructions for displaying the output data on an application user interface on a display, and Program instructions for displaying the bot query in a bot dialog window on the display, wherein the bot dialog window and the application user interface are displayed simultaneously, and the user query is received via the bot dialog window, and having The computer system according to claim 18 or 19.
Citation Information
Patent Citations
Debug support method
JP2004185063A
Information search system and method
JP2019139746A
Stab: smart triaging assistant BOT for intelligent troubleshooting
US20180121808A1