CONVERSATION-BASED REPORT GENERATION WITH REPORT CONTEXT

Examples for conversation-based report generation are described herein. In some examples, a report context based on user input to a conversation manager is received. A report is generated based on the report context. The report context is saved for subsequent report generation. The report context may include information related to the intent of the user input.

BACKGROUND

Computers are used to perform a variety of tasks, including work activities, banking, research, and entertainment. Networking technology may enable computers to communicate. For example, computers may send and/or receive information via a network. In this way, information may be shared and/or communicated between computers.

DETAILED DESCRIPTION

Examples of speech-activated features to create, filter and adjust reports are described herein. The described conversation-based report generation with report context may allow users to customize the produced output from a conversation manager. Companies from all business areas produce data, generate information and are increasing the consumption of the produced information.

The described conversation-based report generation with report context may use a set of conversational structures establishing a flexible, adaptive and extensible set of scripts, based on natural language processing. The system may ask questions and clarifications to obtain a report context that enables the system to refine and define what is actually requested by the user. Further, the system may engage in the process of obtaining information from conversational interaction, local resources (e.g., a user's computer), from local software (e.g., an e-mail program and/or document folders) or remotely from other sources (a particular database or third party Application Programming Interface (API) (for online services, for example)).

The system may facilitate the access of information in an easy and quick manner to reduce the amount of time spent on manual and repetitive tasks. In some examples, the system may verify the speech of the requester (e.g., user) to ensure a trustable source and to target information that is classified and protected to restrict (e.g., limit) the access.

FIG. 1is an example block diagram of a system100in which conversation-based report generation with report context may be performed. The system100may include a computing device102. Examples of computing devices102may include desktop computers, laptop computers, tablet devices, smart phones, cellular phones, game consoles, server devices, and/or smart appliances, etc.). In other examples, the computing device102may be a distributed set of devices. For example, the computing device102may include multiple discrete devices organized in a system to implement the processes described herein. In some implementations, the computing device102may include and/or be coupled to a display for presenting information (e.g., images, text, graphical user interfaces (GUIs), etc.).

The computing device102may include a processor. The processor may be any of a central processing unit (CPU), a microcontroller unit (MCU), a semiconductor-based microprocessor, GPU, FPGA, an application-specific integrated circuit (ASIC), and/or other hardware devices suitable for retrieval and execution of instructions stored in the memory. The processor may fetch, decode, and execute instructions, stored on the memory and/or data storage, to implement printing device functionality based on consumption and payment.

The memory may include read only memory (ROM) and/or random access memory (RAM). The memory and the data storage may also be referred to as a machine-readable storage medium. A machine-readable storage medium may be any electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions. Thus, the machine-readable storage medium may be, for example, RAM, EEPROM, a storage device, an optical disc, and the like. In some examples, the machine-readable storage medium may be a non-transitory machine-readable storage medium, where the term “non-transitory” does not encompass transitory propagating signals. The machine-readable storage medium may be encoded with instructions that are executable by the processor.

The computing device102may enable functionality for conversation-based report generation with report context110. For example, the computing device102may include hardware (e.g., circuitry and/or processor(s), etc.) and/or machine-executable instructions (e.g., program(s), code, and/or application(s), etc.) for communicating with a conversation manager103. The computing device102may generate a report112based on a report context110received from the conversation manager103.

A conversation manager103may include a computer program that receives user input108in the form of human language and determines a report context110based on the user input108. In some examples, the user input108may be in the form of speech-based communication (e.g., spoken words and/or utterances) or text-based communication (e.g., typed words). Examples of virtual assistants that may implement the conversation manager103include Siri® by Apple®, Cortana® by Microsoft®, Alexa® by Amazon.com® and Google Assistant®.

The conversation manager103may interpret the user input108to determine the report context110. The user input108may be a report generation request made by a user. The report context110may include information related to the intent of the user input108. For example, the conversation manager103may determine report objectives that are expressed by the user input108. A report context110may include conditions unique to an interaction session with the conversation manager103.

In some examples, the conversation manager103may interact with the user to clarify the report context110. For example, if the conversation manager103cannot confirm the intent of the user input108, then the conversation manager103may interact (e.g., via sound or text) with the user to determine arguments, variables and/or conditions that define the report context110.

In some examples, the conversation manager103may be hosted at a remote location from the computing device102. For example, the computing device102may connect to the conversation manager103. The computing device102may connect to conversation manager103via a network. Examples of networks may include wide area networks (WANs) (e.g., the Internet), local area networks (LANs), metropolitan area networks (MANs), and/or personal area networks (PANs), etc. Networks may be implemented using wired technology (e.g., Ethernet, Data Over Cable Service Interface Specification (DOCSIS), synchronous optical networking (SONET), and/or synchronous digital hierarchy (SDH), etc.) and/or wireless technology (e.g., Institute of Electrical and Electronics Engineers (IEEE) 802.11 (Wi-Fi), IEEE 802.15 (WiMAX), Bluetooth, ZigBee, near-field communication (NFC), and/or Long-Term Evolution (LTE), etc.).

A network may include devices. For example, a network may include computing devices, routers, switches, gateways, access points, and/or modems (not shown inFIG. 1).

In other examples, the conversation manager103may be hosted by the computing device102. For example, the computing device102may be a server that hosts the conversation manager103.

In some examples, the conversation manager103may receive the user input108from a remote computing device. For example, the conversation manager103may receive the user input108from a remote desktop computer, mobile computing device or remote web user interface (e.g., web browser) over a network.

Easy and quick access to information is beneficial. Individuals and companies, from all business areas, are producing data, generating information and, increasing the consumption of the produced information. In an example, a device-as-a-service (DaaS) application may be used by a company. A DaaS portal may work on top of data collected by computing devices that is later processed in a remote network location (e.g., in the cloud). In some examples, this information may be made available to device fleet managers and information technology (IT) administrators in the form of multiple reports with valuable data. These reports are one input that may be used to make informed decisions. However, manual report generation may be repetitive, time consuming and cumbersome.

Similar situations occur in many different areas. For example, portals and content management tools may be available to produce reports. Most of the time, such reports are designed, implemented and made available in a predefined and static way. In some cases, there may be an option to filter the results before generating the report. However, these reports are not dynamic in a way that the end user, who is requesting access the information, is the one that defines what is going to display.

Additionally, it is a common practice to use a particular report, apply the available filters and then export the file to proceed with further filtering and adjustments of the report. This additional step usually takes time and blocks the end user (e.g., employee) from focusing on other tasks.

Furthermore, from a security perspective, legacy systems may protect their information using a set of credentials. A user that has the correct credentials may gain access to a particular set of reports. Based on the credential level, a determined number of reports or data might not be available.

The conversation-based report generation with report context described herein may provide information and dynamic reports112to a user interactively using a conversation manager103, thereby simulating a live personal assistant. Communication between the user and the system100can be implemented orally and/or by using text-based messages (e.g., similar to a chatbot).

The conversation manager103may rely on a set of conversational structures establishing a flexible, adaptive and extensible set of scripts, based on natural language processing. When a user interacts with the conversation manager103, a session with a given report context110may be established. As this session progresses, the conversation manager103may ask questions and clarifications to obtain information that facilitates the system100to refine and define what is actually requested by the user. Therefore, responses from the user may result in guidance to the conversation manager103in such way that the system100can chose the best path to follow.

In some examples, the end user may provide user input108to the conversation manager103, which may be ready to answer questions, receive requests and/or execute instructions. With an interaction started, the user can ask questions or make requests of the conversation manager103. For example, the user may submit a request to the conversation manager103for a report112to be created. The user may further request that the produced output be customized based on his/her specific needs. The conversation manager103may create a report context110based on the user input108.

Once the report context110is defined, the conversation manager103may provide the report context110to the computing device102. The computing device102may generate a report112based on the received report context110. For example, a report generator104may engage in the process of obtaining information as instructed by the report context110. The actual data or action to be generated as the result of this conversational interaction, may be collected from local resources (e.g., files stored on a user's computer), from a local software (e.g., from an e-mail program, or document folder) or remotely (e.g., from a particular database or an external API).

In an example, the report112may be generated by organizing and presenting information from a database by using the report context110. Upon receiving the report context110, the report generator104may query the database according to the report context110. Upon receiving information from the database, the report generator104may format the presentation of the information based on the report context110. For example, the report generator104may apply filters to the database information as requested by the user. The report112may be displayed by the computing device102or communicated to a remote computing device.

In some examples, the report112may be saved as a certain file format for later use. For example, when saving the report112, the user can assign a name (e.g., “daily metric report”). Then, later, the user may start a new interaction with the system100based on the saved report112. For example, the user may provide the request “generate a new daily metric report for today” or even replace “today” with a previous date, to retrieve historical information.

In some examples, a report112may be fully customized, both in terms of data filtering but also on the display and layouts. For instance, in response to the report context110, the report112may be generated based on a report type. The report generator104may offer a user a set of distinct layouts for the report112. For example, the report type may include lists, data tables, summaries, etc. Upon report creation, the user can select which format fits his/her needs best and, based on this decision, the report generator104may adapt the produced output.

The customization process may also include the amount of data to be reduced and the actual information that is displayed. This means that the user will be able to filter the report112by providing criteria in the user input108. For example, the user may request that columns or a set of data be dropped (e.g., deleted) that the user is not interested in viewing.

Customization information may be included in the report context110. For example, the computing device102may store the report context110provided by the conversation manager103in a report context storage106. As the user interacts with the conversation manager103, the report customization information may be included in the report context110for later use in generating subsequent reports112.

In some examples, the report context110may include formatting information. In addition to customized report creation, additional actions may be accessible through speech commands. For example, the user may request that the content of the report112be exported and/or shared in a particular format. Once the desired report112is created and made available, the user can request the conversation manager103to export to a particular file format (e.g., a spreadsheet format or portable document (PDF) format).

In some examples, the report context110may also include sharing information. The user may request that the report112be shared (e.g., sent to) with a particular recipient. For example, the user may instruct the conversation manager103to email the completed report112to a certain email address.

Each time the user engages in a new conversation with the conversation manager103, a report context110may be created and/or modified. A given report context110may be associated with a produced report112. Because each report112has a unique report context110associated with it, the user can re-use the saved report contexts110from a previous conversation to do follow up questions for new reports112. The multiple report contexts110may be saved in the report context storage106. A user may go back to a generated report112and ask follow up questions or apply additional filters without having to re-start the whole report-creation process again.

In some examples, the computing device102may provide a user interface element associated with the saved report context(s)110. The user interface element may be selectable to choose a saved report context110for subsequent report generation.

In an example, a user may interact with the conversation manager103to generate a first report. A first report context for the first report may be saved by the computing device102. The user may then request a second report, which may be associated with a second report context. The user may then desire to create a third report based on the first report. The user may select the first report (e.g., select a user interface element associated with the first report) and may interact with the conversation manager103to generate the third report. The third report may inherit the first report context. In other words, the third report may start with the first report context. For example, the conversation manager103may engage with the user using the first report context. The conversation manager103may ask questions of the user to determine the intent of the third report context associated with the third report. The third report context may add to the inherited first report context.

Each produced report112may have a unique report context110associated with it that provide the requester the ability to recover a report context110and ask for follow up. This means that a user can create a given report112, use the information and later return to the report112asking just for a particular filter to be added, using voice or text commands, without having to re-create the whole report112. The conversation-based report generation with report context described herein provides for easy, quick, secure and highly adaptive access to information presented in a report112.

With the described conversation-based report generation with report context, the report knowledgebase may be easily increased and the number of reports may be extended to address new objectives of an end user. Additionally, the reports112may be presented in multiple formats, based on user needs. By using speech (e.g., voice or text) to create, filter and adjust reports112, users may customize the produced output while simultaneously reducing the amount of time spent on manual and repetitive tasks.

FIG. 2is an example flow diagram illustrating a method200for conversation-based report generation with report context. A computing device102may receive202a report context110based on user input108to the conversation manager103. The report context110may include information related to the intent of the user input108. In some examples, the report context110may also include information related to filters applied to a generated report112. The computing device102may receive202the report context110from the conversation manager103, which receives the user input108in the form of voice or text communication.

The computing device102may generate204a report112based on the report context110. For example, the computing device102may obtain information as instructed by the report context110. In some examples, report generation may include obtaining and formatting data according to the report context110. The data may be collected from local resources (e.g., files stored on a user's computer), from a local software (e.g., from an e-mail program, or document folder) or remotely (e.g., from a particular database). In some cases, the computing device102may invoke an Application Programming Interface (API) to obtain data for the report112. The API may be a software intermediary that enables two applications to talk to each other.

In some examples, report generation may include formatting the obtained data according to the report context110. For instance, the report context110may include filters and/or report types that are applied to the report112.

The computing device102may save206the report context110for subsequent report generation. For example, the computing device102may store the report context110provided by the conversation manager103in a report context storage106. A user may select the saved report context110as the basis for a new report112. For example, a new report112may inherit the saved report context110. Therefore, a user may go back to a saved report context110and begin interacting with the conversation manager103(e.g., ask follow up questions or apply additional filters) without having to re-start the whole report creation process again.

Because the report context110is saved for later usage, the user may have multiple active reports112. The user may navigate between active reports112and make use of the saved report contexts110.

FIG. 3is another example block diagram of a system300in which conversation-based report generation with report context may be performed. The system300may include a computing device302and a conversation manager303that may be examples of the computing device102and conversation manager103described in connection withFIG. 1.

The computing device302may include a processor320, a data store316, a machine-readable storage medium322, and/or a communication interface318. The computing device302may be an example of the computing device102described in connection withFIG. 1in some implementations. For instance, the processor320and/or the machine-readable storage medium322may implement the conversation-based report generation with report context described in connection withFIG. 1. The computing device302may include additional components (not shown) and/or some of the components described herein may be removed and/or modified without departing from the scope of this disclosure.

The processor320may be any of a central processing unit (CPU), a semiconductor-based microprocessor, graphics processing unit (GPU), FPGA, an application-specific integrated circuit (ASIC), and/or other hardware device suitable for retrieval and execution of instructions stored in the machine-readable storage medium322. The processor320may fetch, decode, and/or execute instructions (e.g., report generation instructions304) stored on the machine-readable storage medium322. Additionally or alternatively, the processor320may include electronic circuits that include electronic components for performing functionalities of the instructions (e.g., report generation instructions304and/or biometric authentication instructions328). It should be noted that the processor320may be configured to perform any of the functions, operations, steps, methods, etc., described in connection withFIGS. 1-2 and/or 4-6in some examples.

The machine-readable storage medium322may be any electronic, magnetic, optical, or other physical storage device that contains or stores electronic information (e.g., instructions and/or data). Thus, the machine-readable storage medium322may be, for example, RAM, EEPROM, a storage device, flash memory, an optical disc, and the like. In some implementations, the machine-readable storage medium322may be a non-transitory machine-readable storage medium, where the term “non-transitory” does not encompass transitory propagating signals.

The computing device302may also include a data store316on which the processor320may store information. The data store316may be volatile and/or non-volatile memory, such as DRAM, EEPROM, magnetoresistive random-access memory (MRAM), phase change RAM (PCRAM), memristor, flash memory, and the like. In some examples, the machine-readable storage medium322may be included in the data store316. Alternatively, the machine-readable storage medium322may be separate from the data store316. In some approaches, the data store316may store similar instructions and/or data as that stored by the machine-readable storage medium322. For example, the data store316may be non-volatile memory and the machine-readable storage medium322may be volatile memory.

The computing device302may further include a communication interface318. The computing device302(e.g., processor320) may communicate with external devices (not shown) using the communication interface318. For example, the computing device302may utilize the communication interface318to communicate with the conversation manager303. The communication interface318may include hardware and/or machine-readable instructions to enable the processor320to communicate with the external device(s). The communication interface318may enable a wired or wireless connection to the external device(s). For example, the communication interface318may include and/or may be coupled to a network interface card, communication ports, and/or a wireless modem, etc., to communicate with clients and/or servers. The communication interface318may be utilized to transmit and/or receive information (e.g., performance data, requests, indicators, lists of available applications, lists of servers, remote desktop connection information, streams, binary information, packets, and/or messages, etc.).

In some implementations, the computing device302may communicate with various input and/or output devices, such as a keyboard, a mouse, a display, another apparatus, electronic device, computing device, etc., through which a user may input instructions into the computing device302.

In some examples, the computing device302(e.g., the processor320through the communication interface318) may send user input308to the conversation manager303. In other examples, the conversation manager303may receive the user input308from a remote computing device. For example, the conversation manager303may receive the user input308from a remote desktop computer, mobile computing device or remote web user interface (e.g., web browser). The user input308may be voice data or text data.

The conversation manager303may determine a report context310using the user input308. For example, the conversation manager303may extract the intent of the user from a voice communication from a user. The conversation manager303may send the report context310to the computing device302to generate a report312. For example, the machine-readable storage medium322may store report generation instructions304. The processor320may execute the report generation instructions304using the report context310to generate the report312.

In some examples, the machine-readable storage medium322may store biometric authentication instructions328. The processor320may execute the biometric authentication instructions328to authenticate a user. In other words, the processor320may authenticate a user in the sense of trusting the origin of the user input308based on a biometric feature. The biometric feature may be a voice recognition, face recognition or other biometric authentication.

In some examples, when a particular user creates his/her account in a company system, the user may be invited to create a voice profile. Therefore, users may be identified not only through their credentials, but also using their voice. Because users may interact with the conversation manager303using voice, content in a generated report312may be provided to authorized personnel using the biometric feature of the voice profile. For example, a user may be asked to read a set of difference utterances. This process will allow the computing device302to create a dataset with the user voice profile that can be used for secure report generation. Access to report information may be granted through voice authentication.

It should be noted that other forms of biometric authentication may be implemented. For instance, voice authentication is an example of biometric authentication. However, other forms of biometric authentication (e.g., face recognition/authentication) may also be used to authorize report generation. Additionally, a combination of biometric authentication (e.g., voice and face recognition) may also be used to authorize report generation.

In some examples, when a user provides a voice request to the conversation manager303, the processor320may evaluate the speech from the request (e.g., the report generation request) and may validate the speech against this pre-processed (and trusted) voice dataset. If the voice from the request is a match with the existing voice profile, the report312may be generated and displayed. Otherwise, a message may be shown, indicating that the information will not be displayed due to security reasons.

As described in connection withFIG. 1, the processor320may generate a report312based on the report context310. The generated report312and associated report context310may be saved for later usage. In some examples, the generated report312may be protected with a voice restriction. For example, a particular report312may be created every week with a “save for later usage” feature. The user can then request a new report312. Using the saved report context324, the system300will know the intent for the new report312.

In some examples, when saving the report312, the user may choose to protect the report312and/or associated report context310using the voice biometric feature. When protected, a report312can be linked to one user or multiple users. For example, access to a protected report312may be granted to a group of users (e.g., accounting department, engineering department, etc.).

In some examples, target information for the report312may be classified and protected in order to restrict (e.g., limit) access. For such cases, the computing device302and/or conversation manager303may verify the speech of the requester (e.g., user) to ensure that the speech represents a trustable source. The generated report312may be provided (e.g., displayed or saved) to authorized users, while unauthorized users will not gain access to the information.

Therefore, the conversation-based report generation with report context described herein may provide dynamic report creation. Additionally, the content of the report312may be adjusted and re-executed any number of times, until the original intent is reached. From a security perspective, biometric authentication (e.g., voice biometrics) may provide an additional layer of protection, besides or in addition to traditional credentials.

FIG. 4is an example flow diagram illustrating another method400for conversation-based report generation with report context. The computing device302may authenticate402user input308based on a biometric feature. For example, the computing device302may receive the user input308in the form of a voice communication made to a conversation manager303. The user input308may originate at the computing device302or may be provided to the computing device302from a remote source. The computing device302may evaluate the speech from the user input308(e.g., the report generation request) and may validate against a pre-processed (and trusted) voice profile. If the voice from the user input308is a match with the existing voice profile, the user input308may be authenticated; otherwise, a message may be shown, indicating that the information will not be displayed due to security reasons.

It should be noted that the computing device302may authenticate402user input308based on other biometric features besides, or in addition to, voice recognition. For example, report generation and/or display may be protected with face recognition. In an example, a report312that may be protected with a biometric feature and the user may request the report312using text (e.g., not voice). For this particular case, the system300can reply to the user with a “phrase challenge” that the user must read in order to grant access to the requested report312(or, as an alternative, use a secondary biometric authentication, when available).

The computing device302may receive404a report context310based on the user input308to the conversation manager303. For example, the conversation manager303may extract the intent of the user input308. The report context310provided by the conversation manager303may indicate the extracted intent. The report context310may include an action or instruction for generating a report312. The report context310may also include filters for the report312, customization information, formatting information and/or sharing information for the report312as described in connection withFIG. 1.

The computing device302may generate406a report312based on the report context310. This may be accomplished as described in connection withFIG. 2.

In some examples, the computing device302may generate406the report312based on permissions associated with the authenticated user input308and the report context310. For example, information targeted by the report context310may be classified and protected in order to restrict (e.g., limit) access. The computing device302may generate406the report312if the user associated with the user input308is authorized to access the information in the report312. Otherwise, an unauthorized user will not gain access to the information.

In some examples, the user might request a protected report312using text. For this particular case, the system300may send a challenge phrase to be read by the user to validate the voice. In other examples, the system300may use an alternative biometric validation method. In yet other examples, the system300may block access to the protected report312. In this case, the system300may inform the user that the requested report312may be accessed through voice command. These different validation alternatives may be configured by the system administrator.

The computing device302may save408the report context310for subsequent report generation. This may be accomplished as described in connection withFIG. 2.

The computing device302may receive410a new (e.g., second) report context310based on the saved report context324and additional user input308to the conversation manager303. For example, the computing device302may provide a user interface element associated with the saved report context324. The user interface element may be selectable to choose the saved report context324for subsequent report generation. If a user selects the user interface element, then the computing device302may start a new report312that inherits the saved report context324. In some examples, the computing device302may communicate the selected saved report context324to the conversation manager303.

The conversation manager303may create the new report context310using first report context310(or other prior report context310) as a basis for the additional user input308. For example, the conversation manager303may interpret the additional user input308using the saved report context324as a reference point. Therefore, even if the user starts the new report312after ending the conversation for the first report312, the conversation manager303may know what the user is talking about. The conversation manager303may send the new report context310to the computing device302.

The computing device302may generate412a new (e.g., second) report312based on the new report context310. For example, the computing device302may generate the new report312according to instructions included in the new report context310. The computing device302may save408the new report context310for subsequent report generation.

FIG. 5is an example of a graphical user interface (GUI)530for conversation-based report generation with report context. The GUI530may be generated by a computing device (e.g., computing device102and/or computing device302) to display a report512. The GUI530may be displayed at the computing device or at a remote computing device (e.g., remote desktop computer, mobile computing device or remote web user interface).

In some examples, the GUI530may include a report window532. One report512or multiple reports512may be displayed within the report window532. The report(s)512may be generated as described in connection withFIGS. 1-4. For example, a user may communicate with a conversation manager, which generates a report context110. The computing device may generate the report512using the report context. The computing device may save the report512and associated report context110.

The GUI530may provide a user interface element associated with the saved report context. The user interface element may be selectable to choose the saved report context110and report512for subsequent report generation.

In this example, the report window532includes three selectable report tabs534, which are examples of user interface elements. A first report tab534amay be associated with a first report512. A second report tab534bmay be associated with a second report512. A third report tab534cmay be associated with a third report512.

Upon selecting a report tab534, the associated report512may be displayed. Additionally, the report context110associated with the selected report tab534may be selected for subsequent report generation via user input108to the conversation manager103. For example, if a user selects the first report tab534a, then the report context110for the first report may be loaded into the conversation manager103, which may interpret subsequent user input108according to the first report context110.

FIG. 6is an example of a conversation manager interface636for conversation-based report generation with report context. The conversation manager interface636may be generated by a computing device (e.g., computing device102and/or computing device302) and/or a conversation manager to display communications between a user and the conversation manager. In some examples, the conversation manager interface636may be included in a DaaS portal.

An example of a conversation between a conversation manager and a user is illustrated inFIG. 6. Messages from the conversation manager are displayed on the left side of the conversation manager interface636. Messages from the user are displayed on the right side of the conversation manager interface636. The user input may be in the form of voice (e.g., captured by a microphone) or in the form of a text message (e.g., typed into a keyboard or keypad). In this example, the voice is transcribed to text and added to the conversation manager interface636. Also, the response from the conversation manager may be communicated to the user as a synthetized voice, which is also transcribed as text in the conversation manager interface636.

In a first message601, the conversation manager asks “How can I help you?” when the user initiates the conversation manager. In a second message603, the user responds “Show me the devices with batteries about to fail.” The conversation manager receives this user input and generates a report context110from which a report112may be generated. In some examples, the report112may be displayed, exported and/or shared according to the current of saved report context110. The conversation manager indicates that the report112has been generated in the third message605that says “Done.”

At a later time, the user may ask in the fourth message607“Can you filter by country?” The conversation manager may start the process of creating a second report112that inherits the report context110of the first report112. It should be noted that the conversation manager knows that the user is asking about devices with batteries about to fail because of the first report context110that was saved. However, in this case, the conversation manager does not have sufficient information to create the second report context110. In other words, the conversation manager does not know which countries to filter. Therefore, the conversation manager asks in the fifth message609“Tell me which country you are looking for.” The user responds to this request in sixth message611with “United States.”

Having sufficient information from the user, the conversation manager may generate the second report context110, which is sent to the computing device102to generate the second report112. The conversation manager indicates that the second report112has been generated in the seventh message613that says “Done.”

In another example (not shown), a database may store information about a fleet of computers. The user may ask the conversation manager to generate a first report on the grade of a fleet of computers. In this case, the report context110includes the grade of the computer fleet. The user may ask the conversation manager to further filter the report based on computer models and location. In this case, the first report context may be used to generate a second report from the database that filters certain computer models that are located in a particular country (e.g., United States).

Continuing this example, at a later time, the user may select the first report and ask the conversation manager to generate a report for devices with batteries about to fail next week. In this case, the conversation manager knows from the first report context that the user is asking about the computer fleet. The conversation manager may generate a third report context110that includes devices in the computer fleet with batteries about to fail next week. A third report112may be generated from the database using this third report context110to filter devices in the computer fleet with batteries about to fail next week.