US20230027421A1 - Interactive and Conversational Data Exploration - Google Patents

Interactive and Conversational Data Exploration Download PDF

Info

Publication number
US20230027421A1
US20230027421A1 US17/957,366 US202217957366A US2023027421A1 US 20230027421 A1 US20230027421 A1 US 20230027421A1 US 202217957366 A US202217957366 A US 202217957366A US 2023027421 A1 US2023027421 A1 US 2023027421A1
Authority
US
United States
Prior art keywords
narrative
visualization
data
natural language
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US17/957,366
Inventor
Lawrence A. Birnbaum
Kristian J. Hammond
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Salesforce Inc
Original Assignee
Narrative Science LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/521,264 external-priority patent/US9720899B1/en
Priority claimed from US15/253,385 external-priority patent/US11238090B1/en
Priority claimed from US15/666,151 external-priority patent/US11341338B1/en
Priority claimed from US15/895,800 external-priority patent/US10747823B1/en
Priority to US17/957,366 priority Critical patent/US20230027421A1/en
Application filed by Narrative Science LLC filed Critical Narrative Science LLC
Assigned to NARRATIVE SCIENCE INC. reassignment NARRATIVE SCIENCE INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HAMMOND, KRISTIAN J.
Assigned to NARRATIVE SCIENCE INC. reassignment NARRATIVE SCIENCE INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BIRNBAUM, LAWRENCE A.
Publication of US20230027421A1 publication Critical patent/US20230027421A1/en
Assigned to NARRATIVE SCIENCE LLC reassignment NARRATIVE SCIENCE LLC CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: NARRATIVE SCIENCE INC.
Assigned to SALESFORCE, INC. reassignment SALESFORCE, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: NARRATIVE SCIENCE LLC
Assigned to NARRATIVE SCIENCE LLC reassignment NARRATIVE SCIENCE LLC CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: NARRATIVE SCIENCE INC.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/041Abduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/253Grammatical analysis; Style critique
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Definitions

  • NLG interactive natural language generation
  • AI artificial intelligence
  • the technology described in these patents and patent applications can serve as a platform and configuration model for automatic narrative generation and comprises analytic and natural language technology capable of automatically generating narratives based on structured data, in many cases primarily structured numerical data.
  • analytic and natural language technology capable of automatically generating narratives based on structured data, in many cases primarily structured numerical data.
  • our system Given data about investment portfolios, such as asset classes, specific assets, investment amounts, and values and changes in values, our system, appropriately configured, is capable of automatically generating narratives discussing the performance of those portfolios over some relevant period of time, e.g., a quarter.
  • baseball games such as box score, line score, and play-by-play information
  • this technology can be referred to herein as a narrative generation artificial intelligence platform (or a narrative generation platform).
  • Configurations for the narrative generation platform include notional outlines comprising sections; each section comprising one or more communication goals characterizing the nature of the appropriate information to be conveyed in that section, each communication goal specifying or associated with appropriate analytic models or packages comprising methods (e.g., in the form of computer code) relevant to determining the particular information of the appropriate nature based on data at hand in the specific instance, as well as, on their input side, the nature of the relevant data, an appropriate internal data model for those data, and methods for mapping from the actual data to that internal data model.
  • methods e.g., in the form of computer code
  • an appropriately configured system would be able to generate performance report narratives about those salespeople.
  • the information conveyed in such narratives might track or recap (describe) how the salesperson has performed over some relevant time interval, such as a year or a quarter, according to some relevant performance metric, such as total sales, and how that performance has changed over that interval; evaluate or assess that performance, for example whether it has improved, stayed the same, or declined compared with past performance, how the salesperson's performance ranks overall compared with their peers (e.g., other salespeople in the same office), and/or how it compares to their goal or quota; and explain that performance by looking at key indicators or drivers of overall sales performance, such as the number, quality, and size of opportunities in the pipeline, the amount of time it takes for those opportunities move through the pipeline, and the rate at which they pass hurdles in that pipeline, and ultimately close.
  • the narrative may then drill down to focus on some specific driver, e.g., the quality of sales in the pipeline, in
  • a narrative of this sort provides information relevant to three (related) communication goals: track performance, evaluate performance, and explain performance. These communication goals are specified within sections of the notional outline that comprises the configuration for a narrative of this sort.
  • the configuration also comprises elements that enable the system to identify data relevant to achieving these communication goals; analyze the data in appropriate ways to produce information of the sort that would meet those communication goals; cast the results in terms of explicit representations, including narratively useful characterizations; organize these representations in a narratively coherent form; and then finally express the narrative in natural language.
  • a well-constructed narrative of this sort will answer certain implicit questions that the reader can be expected to have—these are the information needs that the communication goals aim to fulfill.
  • the answers to these initial questions will tend to raise certain other questions in the reader's mind; and the narrative will go on to answer these questions in turn.
  • the communication goals that comprise the configuration for the narrative platform correspond to questions the user has or can be expected to have; and the other elements of the system specified by or associated with those communication goals are aimed at answering those questions in a narratively coherent manner.
  • the configuration should aim to reflect ahead of time, as much as possible, the likely questions a reader will have upon reading the narrative, in order to generate a narrative that will seem coherent, relevant, and useful.
  • the narrative generation platform and configuration model as outlined in the above-referenced and incorporated '264 patent application, was also formulated with the notion that such narratives could be generated interactively.
  • the system might wait for user input indicating a specific question or interest; and then execute the configuration elements associated with the communication goal corresponding to that question, which include performing the analytics and determining the characterizations relevant to answering that question or addressing those interests, and then convey the results in natural language.
  • the system would then await further action by the user—in other words, follow-up questions—in order to proceed further in generating the narrative.
  • the narrative unfolds interactively or conversationally, under the control of the user.
  • the elements specified in the configuration (the communication goals and their associated analytics, characterizations, etc.), as well as their specific parameterizations given the current data, provide constraints on what the user might be interested in within the current context that enable the system to properly interpret inputs; and similarly provide the mechanisms for generating appropriate responses.
  • example embodiments of the invention provide significant technical advances in the NLG arts by harnessing computer technology to improve how narrative generation platforms can be extended and integrated with conversational interfaces to support a wider range of human-machine interaction.
  • FIG. 1 shows an example embodiment of a system where a narrative generation artificial intelligence platform is in communication with both a visualization platform and a conversational interface.
  • FIG. 2 shows an example process flow for execution by a conversational interface to control the operations of the narrative generation artificial intelligence platform in response to speech or text inputs.
  • FIG. 3 A depicts an example screenshot of a visualization generated from a set of visualization data.
  • FIG. 3 B depicts a process flow for a conventional manner of focusing a visualization.
  • FIG. 3 C depicts an example screenshot of a focused visualization.
  • FIG. 3 D depicts an example screenshot of a visualization paired with an automatically generated narrative text that explains and characterizes the visualization.
  • FIG. 4 depicts an example process flow for focusing visualizations with the aid of narrative analytics.
  • FIG. 5 depicts an example system diagram for focusing visualizations with the aid of narrative analytics.
  • FIG. 6 depicts an example screenshot where the visualization and narrative of FIG. 3 are included with a focus filter button that is selectable by a user to initiate the process of focusing the visualization and/or narrative in a user-defined manner.
  • FIG. 7 A depicts an example process flow for the logic used to determine focus criteria candidates with respect to a visualization.
  • FIG. 7 B depicts an example set of visualization data.
  • FIG. 7 C depicts an example mapping of visualization and/or data types to generalized focus options.
  • FIG. 7 D depicts an example set of generalized focus options that are associated with a visualization and/or data type.
  • FIG. 7 E depict examples of models for metric options from a set of generalized focus options.
  • FIG. 8 A depicts an example screenshot where the visualization that includes a focus filter menu.
  • FIG. 8 B depicts an example screenshot where the visualization that includes a focus filter menu where the focus filter menu includes a drop down menu of focus options.
  • FIG. 8 C depicts an example focus criteria data structure.
  • FIG. 9 A depicts an example process flow for the logic used to generate a focus configuration for use with a visualization.
  • FIG. 9 B depicts an example focus configuration data structure.
  • FIG. 10 depicts an example screenshot showing a visualization that has been focused based on input received through a focus filter menu.
  • FIGS. 11 A-C how focused narratives can be generated as part of the visualization focusing effort.
  • FIG. 12 depicts another example screenshot of a visualization generated from a set of visualization data.
  • FIG. 13 depicts an example data ecosystem that shows relationships that exist between visualization data and other data stored in a system.
  • FIG. 14 depicts an example process flow for evaluating potential drivers with respect to a measure shown by a visualization.
  • FIG. 15 A depicts an example menu for specifying a relationship between a visualization measure and a driver candidate to be evaluated.
  • FIG. 15 B depicts an example screenshot of a visualization generated from a set of visualization data that is paired with an automatically generated narrative text that explains the results of evaluating the potential driver relationship specified by FIG. 15 A .
  • FIG. 16 A depicts an example menu for specifying a multiple relationships between a visualization measure and multiple driver candidates to be evaluated.
  • FIG. 16 B depicts an example screenshot of a visualization generated from a set of visualization data that is paired with an automatically generated narrative text that explains the results of evaluating the potential driver relationships specified by FIG. 16 A .
  • FIG. 17 A depicts an example outside measures data structure.
  • FIG. 17 B depicts an example outside series data structure.
  • FIGS. 18 - 23 depict examples of how analytics can be selectively enabled and disabled in an interactive manner.
  • FIGS. 24 - 27 depict examples of how thresholds for analytics can be interactively controlled.
  • FIGS. 28 - 31 depict examples of how predictive analytics can be selectively enabled and disabled.
  • FIGS. 32 - 38 depict examples of how the formatting of resultant narrative stories can be controlled.
  • FIG. 1 shows an example embodiment of a system 100 where a narrative generation artificial intelligence platform 102 is in communication with both a visualization platform 104 and a conversational interface 106 using either text or speech (such as a Chatbot). Through this conversational interface 106 , the narrative generation artificial intelligence platform 102 can receive instructions and queries derived from natural language input, e.g., spoken words, for controlling a visualization and/or a narrative story about a visualization.
  • natural language input e.g., spoken words
  • a number of commercial platforms such as Amazon's Alexa have been released recently to support conversational interaction via speech interface, and, in some cases, textual input.
  • These platforms generally include a set of application programming interfaces (APIs) that are called from within an application to gather inputs from users, and direct outputs to those users based upon the application's operations given those inputs.
  • APIs application programming interfaces
  • these platforms enable a developer to associate potential user inputs in natural language—i.e., questions or commands—with particular tasks to be executed by the underlying application in response to those inputs.
  • these tasks are called intents in the Amazon Alexa platform.
  • the platform communicates the name of the associated task—the tasks and their names are defined by the application developer—to the underlying application via the API.
  • the system then invokes the appropriate code to execute that task. This may result in carrying out other actions, e.g., playing music, retrieving information, making a purchase, etc.—which the application will control through other APIs to the systems that possess those capabilities.
  • chatbot developers using these platforms typically must manually specify large numbers of different forms for association with a given task, a highly labor-intensive and time-consuming process.
  • These forms or patterns may be expressed in terms of keywords; as regular expressions in a regular expression pattern language; or in terms of the more complicated and structured patterns used by a more sophisticated natural language parser.
  • Some platforms (again, e.g., Amazon Alexa) have some capacity to generalize slightly to automatically detect slight variants of the forms directly input by the developers.
  • the user's utterance may also contain specific information for parameterizing the task appropriately, e.g., the name of the song to be played. This information will be associated with variables appropriately located in the linguistic patterns the developer has associated with the task by the speech/language interface (for example, these are called slots in Alexa). The values of these variables are also communicated to the underlying application via the API. They are then used to parameterize the code comprising the underlying application, which, upon execution, will carry out the appropriate actions specified by, and utilizing, these parameters.
  • results may be communicated back to the user in speech form and/or other modalities (e.g., text, graphics, video, etc.) using the API.
  • modalities e.g., text, graphics, video, etc.
  • the narrative generation platform can be used to dynamically carry out appropriate analytics and generate an appropriate response based on user input—the task or query as indicated by the user, and it's parameterization—and other data.
  • the narrative generation platform can be used to help automatically and even dynamically configure aspects of the chatbot platform itself, specifically, the natural language patterns or terms that map to the tasks or intents specified by the developer or otherwise determined to be relevant.
  • the narrative generation platform in the course of its operation, creates specific notional entities that may be described in the course of the narrative, for example, “the best salesperson.” These entities are then available to be used as referents by a user in the course of a conversational interaction.
  • the narrative generation platform includes a natural language generation (NLG) component that can be used to express these notional entities in natural language. This NLG component uses a library of natural language patterns and terms in order to express these entities in natural language.
  • These patterns can be automatically and even dynamically used to configure the set of input patterns and terms that the chatbot platform uses in order to analyze user inputs. (These patterns may need to be reformatted to fit the specific requirements of the chatbot platform itself.)
  • the chatbot platform is then able to use these patterns and terms to determine the specific intent (query or command) denoted by the user's input, as well as the parameters for that intent provided in the input. This relieves the chatbot developer of the need to manually “program” the chatbot with these expressions and terms in order to perform this determination as is normally required.
  • a narrative generation platform is capable of generating the natural language that will be used to provide responses to the user.
  • the natural language in these responses is often closely correlated with the language that a user might employ in expressing a command (e.g., an intent and its appropriate parameterization) for which the response would be appropriate.
  • the language patterns and terms used by the platform to generate this natural language are highly correlated with the language patterns and terms needed by the chatbot platform in order to interpret these user inputs can be mined (and, if necessary, transformed) to automatically produce the language patterns needed to parameterize the chatbot interface in order to appropriately interpret such inputs. This can substantially reduce or even eliminate the burden of manually producing and inputting such patterns and terms.
  • associated with a communication goal such as “track (metric)” might be a predicate form with a language pattern for NLG that would generate a sentence of the form “ ⁇ name-of(metric)> ⁇ tracking period> was ⁇ value-of(entity, metric)>.”
  • This, along with language patterns for the metric and the time period might produce a sentence such as, “Revenue last quarter was $47 thousand.”
  • These language patterns for NLG are very similar in form to the question, “What was revenue last quarter?”—which might be a query that the user would input in a conversational interaction. It is therefore possible to automatically generate a language pattern or set of terms that would match this query from the NLG language patterns used to generate answers to the query.
  • chatbot platform could then be used by the chatbot platform to recognize or “parse” user inputs and map them to the underlying intents (queries or task commands) and their parameterizations.
  • the narrative generation platform can be used to teach the conversational interface 106 how to better understand natural language inputs from users.
  • a narrative generation platform 102 including a narrative generation platform 102 that supports interactive narrative generation in response to user inputs, including textual and speech inputs (see, for example, the '899 patent).
  • the above-referenced and incorporated patent applications also describe how a narrative generation platform 102 can be integrated with a visualization platform 104 to generate narratives that accompany visualizations as well as focus and control of the visualizations and/or narratives (see, for example, the '151 application).
  • the user can specify a data set to visualize; the visualization type to utilize; how the data and meta-data map to parameters of the visualization; and similar parameters.
  • These systems also typically provide users with the capability of adjusting various parameters of the visualization. For example, for line charts, users can typically delimit the range of values on the x-axis for which the visualization will be generated—thus enabling the user to zoom in to focus on particular regions, or zoom out to look at the larger context of some data.
  • a narrative generation system when linked to a visualization system, can respond dynamically as the user interactively controls the visualization system. For example, specifically, as the user changes his or her selection of the data, the nature or details of the visualization, the range of values over which the visualization will be presented, etc., the narrative generation system can automatically generate a new narrative appropriate to the new visualization created in response to these directives. If the overall system is designed so that the user provides these directives via a conversational speech interface rather than a graphical user interface, the narrative generation system can operate similarly within such an environment to dynamically alter the nature of the narrative accompanying the visualization in response to the user's spoken dialog request. Moreover, if desired, the resulting narrative can be read to the user via a text to speech application. This is the first and most direct way of utilizing conversational interface technology to interactively control narrative generation in the context of exploratory data analysis.
  • the narrative generation platform 102 when linked to a visualization platform 104 in this manner, provides significantly greater opportunity for user interaction and control than the visualization platform 104 on its own can provide.
  • Some of these enhancements relate to the control and parameterization of aspects of the integrated system that pertain directly to the narrative generation component. For example, a user can control the length or level of detail at which a narrative will be generated; the format to be utilized—paragraphs, bulleted lists, etc.—and so on.
  • the narrative generation platform 102 when linked to a visualization platform 104 , provides capabilities for easily manipulating not only the narrative generation platform 102 itself, but the visualization platform 104 as well in useful ways that are unavailable to such systems on their own.
  • the focus filter feature described below makes it easy for users to refer to and focus on narratively and analytically meaningful entities in both the visualization and narrative aspects of the combined system.
  • this feature enables users to focus on narratively and analytically meaningful entities—for example, such as the three most improved teams over the season.
  • the visualization and narrative are then modified to focus on just these three entities.
  • This capacity isn't available to a visualization system on its own because such systems lack the analytic capacity, and narrative intent, to identify and make available these sorts of entities (e.g., “the three most improved teams over the season”) for reference and manipulation by the user. They are not manifest in the raw data and metadata; and so simply aren't available to be presented to the user for selection as parameters for the task of focusing the narrative and the visualization.
  • these visualization systems are integrated with the example narrative generation platform 102 described below, with its analytic and natural language generation capabilities, these additional entities are created as a result of the operation of the system; and hence available for reference and manipulation by the user.
  • FIG. 2 shows an example process flow for execution by a conversational interface 106 to control the operations of the narrative generation artificial intelligence platform 102 .
  • the conversational interface receives speech input from a user (e.g., a statement such as “Focus on Entity X”, “Focus on the Team with the Most Wins”, “Why Was the Best Team So Successful?”, etc., in the context of a portion of a narrative and/or a visualization about the performance of various baseball teams).
  • the conversational interface translates these spoken words into task commands and queries for controlling the visualization and/or narrative.
  • This translation can use a referent/slot model where various different words or other linguistic forms are associated with specific tasks or queries (e.g., focus tasks, drill down tasks, etc.) and various different words or terms are associated with slots (e.g., names of entities, either specific or notional).
  • tasks or queries e.g., focus tasks, drill down tasks, etc.
  • slots e.g., names of entities, either specific or notional.
  • a task “focus” is enabled.
  • the parameters of this task will determine the action that the system will take. For example, the user mays say “Focus on Entity X.” Via its API, the chatbot interface 106 will report to the narrative generation platform 102 that the task is “Focus.” The chatbot interface 106 will report as well the parameter “Entity X” as the entity being referred to.
  • the narrative generation platform 102 in response to the task Focus, will then search the set of available entities for reference—which will include not only the original, given entities to be found in the data set (e.g., the Orioles), but the additional entities made available by the narrative analytics of our system—the entities about which a story might be told, such as the best team, the worst team, the most improved team, the least, as well as the two-, three-, or more top (or improved) teams, etc.
  • a narrative generation platform as described, provides, as part of its processing, a context in terms of which user queries and task specifications can be properly interpreted. As an example embodiment discussed further below, this can be achieved via the process flow of FIG. 4 where commands are received from the conversational interface at step 404 . Another example embodiment is shown by FIG. 11 A discussed below where commands are received from the conversational interface at step 404 .
  • a narrative generation platform 102 including when integrated with a visualization platform 104 , is providing users with the ability to drill down to examine drivers of particular metrics for particular entities or aggregate entities. For example, it's possible for users to drill down to visualize and receive a narrative describing the performance of the major stocks or categories driving a change in the overall value of the stock market on a given day, and how they contributed to that change.
  • This capability when combined with a conversational speech interface 106 , as described earlier, can provide users with an extremely powerful interactive, and conversational, interface for data exploration. And again, the resulting narrative can be read to users via a text to speech application. As an example embodiment shown by FIG. 14 discussed below, this can be achieved where commands are received from the conversational interface 106 at step 1404 .
  • a system as described above can support a relatively long interactive dialog in which users simply state how they would like to see the visualization and narrative modified to provide a different perspective or insight, and the system responds appropriately, including by reading the narrative out loud if desired; and in which this cycle can be continued until the user is satisfied with their understanding of the data being presented.
  • Such a system can also support “navigational” utterances; e.g., after looking at a visualization and reading or listening to a narrative describing the important features of the data in that visualization, as generated by our system, the user can use verbal commands to, e.g., “go back” to the previous visualization and narrative.
  • FIG. 3 A shows an example visualization that plots the number of wins by major league baseball team for each season from 1980 through 2015.
  • the visualization is presented in the form of a line chart, and more specifically a multi-line chart.
  • the vertical axis corresponds to wins while the horizontal axis corresponds to years (seasons), and each line on the chart corresponds to a different baseball team.
  • this multi-line chart is extremely dense in terms of information conveyed, and so rather difficult to understand; a user may therefore want to focus in on certain aspects of this visualization in order to understand it better.
  • some visualization software platforms provide users with an ability to select specific elements of the visualization.
  • a variety of mechanisms may be utilized to provide such a selection capability (e.g., point and click selections, drop-down menus, modal dialog boxes, buttons, checkboxes, etc.).
  • a user may want to focus the visualization on a subset of specific teams.
  • the visualization software performs the process flow of FIG. 3 B .
  • the software receives a selection indicative of an entity corresponding to one or more of the lines of the line chart. For example, this can be a selection of three teams.
  • the software selects the data elements within the data upon which the visualization is based that correspond(s) to the selection(s) received at step 300 .
  • the software would select the win totals across the subject seasons for the three selected teams.
  • the software re-draws the line chart in a manner that limits the presented data to only the selected data elements (e.g., the lines for the selected teams.
  • FIG. 3 C depicts an example visualization that would result from step 304 after a user has selected three specific teams—the Atlanta Braves, Detroit Tigers, and New York Mets—for the focused presentation.
  • These include such elements as specific entities or subsets of entities along the x-axis (independent variable) of a bar chart; specific measures (if there is more than one) along the y-axis (dependent variable); specific intervals along the x-axis of a line chart; specific lines in multiple-line charts; etc.
  • the elements of the data manifest as specific entities in the system, to which a user might refer via some selection process, or in a conversational system, are limited to those which comprise the raw data or metadata initially available—e.g, those used to construct the initial visualization in the first place.
  • the focus criteria made available by conventional systems are criteria already known and explicitly represented within the initial data, e.g., visualization data (such as specific teams on the line chart of FIGS. 3 A and 3 C )—specifically, again, those data or metadata which comprise the initial data, such as visualization data, with respect to which the user is making a selection (or selections), or to which the user is referring, in order to produce a second visualization (and/or narrative) focusing on just those aspects or components of the data.
  • visualization data such as specific teams on the line chart of FIGS. 3 A and 3 C
  • narrative analytics can be used in combination with data, including visualization data, in order to carry out the automatic generation of narrative text that provides natural language explanations of, e.g., those visualization data.
  • captions can be automatically generated to accompany a visualization that summarize and explain the important aspects of that visualization in a natural language format.
  • FIG. 3 D shows the visualization of FIG. 3 A paired with a narrative 310 produced via the technology described the above-referenced and incorporated '385 patent application. This narrative 310 serves to summarize and explain important or interesting aspects of the visualization.
  • narrative analytics technology can be used to generate data structures that represent notional characteristics of relevant data, such as visualization data, which in turn can be tied to specific elements of those data to support interactive focusing of narratives and/or visualizations in notional terms that correspond to interesting aspects of the data, as described above.
  • narrative analytics technology applies narrative analytics to the raw data in order to produce derived features or categories (e.g., aggregate elements such as ranked lists or clusters, aggregate measures such as means, medians, ranges, or measures of volatility, and individual elements of interest such as outliers, etc.) that play a role in determining the appropriate data and characterizations—including in particular derived features, values, or categories themselves—that should be included in the resulting narrative.
  • derived features or categories e.g., aggregate elements such as ranked lists or clusters, aggregate measures such as means, medians, ranges, or measures of volatility, and individual elements of interest such as outliers, etc.
  • These narrative analytics are the analytic processes and methods specified in (or by) the system due to their potential relevance to the type of narrative the system has been constructed or configured to produce.
  • the entities representing these derived features or categories can be represented (and presented to the user) in entirely notional terms—that is, they can represent objects or entities with specific, relevant properties, even if the user (or, for that matter, the system itself) doesn't yet know the actual objects or entities which have those properties.
  • a narrative focus filter that integrates narrative generation technology with visualization systems to focus on the narratively salient elements of the data, as computed by relevant analytics.
  • the narrative focus filter simplifies a complex visualization by not only using a natural language generation system to produce an insightful narrative about the visualization, but by focusing the visualization on a subset of the data based on what is most important to the user, in narrative terms, as described above.
  • a narrative is embedded into an existing visualization platform.
  • the interface object presenting the narrative to the user of that platform can be adapted to provide an experience whereby the user is able to focus on a view of the visualization that provides him or her with the most insight.
  • the narrative analytics (which may be explicitly referenced or described in the narrative itself), are what actually provide the selections and filters utilized by the user to determine the focus; the system then translates these into the specific entities, e.g., as actually used by the visualization platform, that meet the appropriate criteria.
  • the result is a seamless integration in which entities that comprise important elements of a narrative accompanying a given visualization can be used to control the subsequent narrative and/or visualization themselves.
  • these entities may be made available for selection in a graphical user interface, or, alternatively, may be available as part of the context which may serve as referents of natural language queries or task specifications by the user. Additionally, again, it should be noted that the necessary narrative analytics can be performed, and these entities can be made available for such purpose, whether or not a narrative is actually generated or supplied to the user to accompany the initial data or visualization.
  • automatic narrative generation or its component technologies such as narrative analytics, linked with a visualization system, can also provide other opportunities to augment a user's ability to focus a visualization, beyond the use of notional entities that may have interesting aspects as described above.
  • such an approach can make it possible for a user to interactively investigate the drivers (causes or inputs) of particular data presented in the visualization; or to directly select specific analytics to be both presented in the visualization and utilized in constructing the accompanying narrative.
  • FIG. 4 depicts an example process flow for focusing visualizations with the aid of narrative analytics.
  • the process flow of FIG. 4 can be executed by a processor in cooperation with computer memory.
  • FIG. 5 depicts an example system for executing the process flow of FIG. 4 .
  • the system of FIG. 5 includes a visualization platform 104 and narrative analytics 510 which may be part of the narrative generation platform 102 .
  • the visualization platform provides the visualization data 502 that serves as the source for a visualization produced by the visualization platform.
  • the narrative analytics 510 can access this visualization data 502 through an application programming interface (API) or other suitable data access/sharing techniques.
  • API application programming interface
  • Examples of visualization platforms that may be suitable for use with the system of FIG. 5 include the Qlik visualization platform and the Tableau visualization platform.
  • the data may also be provided directly by another application, without reference to a visualization platform.
  • the system of FIG. 5 may employ multiple processors such as a first processor serving as the visualization platform 104 and a second processor executing the narrative analytics 510 , although this need not be the case.
  • the various processors can be resident in networked computer systems.
  • the process flow of FIG. 4 describes a technical advance in how a visualization of data can be focused around a notional entity or characteristic even though a user may be unaware of which specific aspects of the visualization correspond to that entity or characteristic.
  • a data structure is a physical manifestation of information organized within a computing system. Examples of data structures may include data files, records, tables, arrays, trees, objects, and the like.
  • the process flow of FIG. 4 can be triggered in any of a number of ways. For example, as shown by FIG. 6 , a “focus” button 600 or the like can be included in a visualization interface.
  • the process flow of FIG. 4 could also be triggered by speech or text input through the conversational interface 106 . In response to such triggering, the process flow of FIG. 4 can be executed.
  • the processor at step 400 determines focus criteria candidates based on narratively relevant characteristics of the visualization or other data. As shown by FIG. 5 , this step can be performed by logic 504 .
  • the focus criteria candidates are options that provide the user with choices, whether implicit or explicit, regarding how the visualization is to be focused.
  • the system may generate a list of narratively relevant and useful notional entities, represented or described in appropriate and intuitive terms—i.e., at a higher level than those provided by the raw data or metadata themselves—for presentation to the user. Alternatively, these entities may simply be available to the system as potential referents to which natural language queries or task specifications from the user may refer. Such a list can be generated in a number of ways.
  • a developer or configurer can examine the set of derived features or entities that might be computed in the course of generating a story of that type. These features or entities will be represented internally by the system as variables or notional entities. The developer or configurer can then determine appropriate language for describing each of these entities to a user, and provide these terms or phrases to the system, each linked to the corresponding internal variable or notional entity, for presentation to the user via a selection mechanism (e.g., a menu) when a story of that type is generated or would be potentially relevant (typically, within this context, to accompany an initial visualization).
  • these entities may simply be made available as possible referents within the context of these data, to be referred to within queries or task specifications uttered by the user within a conversational setting.
  • a separate process may traverse the configuration or code for generating a story of that type, in order to automatically determine the derived features or entities that might be computed in the course of generating a story of that type. These can be determined, for example, by examining the derivations used to compute such features by the system, which must reference them in order to provide them with specific values during analysis and story generation. Alternatively, in other implementations, they may explicitly declared as the relevant notional variables for a section of an outline or configuration representing the rhetorical structure of the story to be generated.
  • variables or notional entities that are used to represent those derived features or entities may then be added to the list of narratively relevant entities to be presented to the user for possible selection, or that may be available for reference as part of text or speech inputs by the user. They may be included in this list automatically; or they may be presented to a developer or configurer for inclusion on the list.
  • the appropriate language for describing these notional entities for presentation to the user may be automatically copied from the corresponding blueprints or other data structures used to represent the linguistic expressions to be utilized by a narrative generation platform in referring to these entities in actual stories; or such language may be determined explicitly by the developer or configurer.
  • FIG. 7 A depicts an example embodiment for step 400 .
  • the processor processes the visualization data to determine a visualization type, story type or set of appropriate narrative analytics corresponding to that visualization data.
  • FIG. 7 B depicts an example data structure for visualization data 710 in relation to the example screenshot of FIG. 6 .
  • the visualization data 710 includes not only specific data values for the data elements presented on the line charts of FIG. 6 but also metadata about those data values and the nature of the visualization itself.
  • the data and metadata may include an identification of a chart type (e.g., a line chart), a name for the measure being plotted (e.g., wins), a data array of values for the measure, names for the chart dimensions (e.g., years/seasons and teams), among other forms of data and metadata.
  • a chart type e.g., a line chart
  • a name for the measure being plotted e.g., wins
  • a data array of values for the measure e.g., years/seasons and teams
  • names for the chart dimensions e.g., years/seasons and teams
  • this data and metadata can be organized in the data structure 710 in any of a number of formats.
  • FIG. 7 B is merely an example for the purposes of illustration.
  • the appropriate visualization type, story type and/or set of narrative analytics can be determined at step 700 based on various fields of the data and metadata within visualization data 710 .
  • the visualization data structure 710 may include metadata that identifies a chart type for the visualization (e.g., line chart) and other fields may indicate other characteristics of the chart (such as the number of entities/lines for the line chart and whether the line chart is a time series), which in turn indicate the appropriate visualization type, story type and/or set of narrative analytics.
  • a chart type for the visualization e.g., line chart
  • other fields may indicate other characteristics of the chart (such as the number of entities/lines for the line chart and whether the line chart is a time series), which in turn indicate the appropriate visualization type, story type and/or set of narrative analytics.
  • the processor selects general focus options based on the determined story type or set of narrative analytics.
  • the system may include data that maps visualization types or story types to general focus options to support step 702 .
  • a table 720 may associate different visualization types 722 with different sets of general focus options 724 .
  • step 702 can select the set of general focus options that are associated with this visualization type by table 720 . It should be understood that while the example of FIG.
  • data structure 7 C uses visualization type 722 as the basis for association with general focus options 724
  • the data structure could also use a story type or set of narrative analytics found at step 700 as the basis for selecting associated general focus options 724 .
  • data structure 720 can associate the story type appropriate for a multi-entity line chart that includes a time series with a set of general focus options 724 .
  • FIG. 7 C shows a table 720 being used for the associations with sets of general focus options, it should be understood that other techniques for association could be used, such as a rules-based approach or others.
  • FIG. 7 D depicts an example set of general focus options 724 that could be associated with a visualization type or story type such as that appropriate for or corresponding to a multi-entity time series line chart.
  • These options 724 can be organized as a data structure that includes the following as a generalized focus expression 730 : “Focus on ⁇ NUMBER OF ITEMS> ⁇ RANK GROUP> ⁇ DIMENSION NAME(S)> by the ⁇ METRIC> of the ⁇ MEASURE> values” as shown by FIG. 7 D .
  • This focus expression 730 is characterized as “general” because it has not yet been provided with specific parameters as to the features or aspects of the data or metadata that are to be the subject of the focus effort.
  • the tokens in this expression are variables whose values will help specify the focus filter to ultimately be applied to the visualization or other data. These variables can be parameterized to specific values in response to user input and/or automated data processing.
  • the variables ⁇ NUMBER OF ITEMS> 732 and ⁇ RANK GROUP> 734 define a rank criterion for focusing and an associated volume criterion for the rank criterion for the focusing effort.
  • the data structure 724 can include a specification of options for these variables such as the set ⁇ 1, 2, 3, . . . ⁇ for the ⁇ NUMBER OF ITEMS> variable 732 and the set ⁇ Highest, Lowest, Median, Most Average, . . . ⁇ for the ⁇ RANK GROUP> variable 734 . A user can then select from among these options to define specific values for these variables.
  • the variable ⁇ DIMENSION NAME(S)> 736 can be specifically parameterized based on the visualization data 710 that is the subject of the focusing effort.
  • the processor can select the option(s) for this variable based on the data and metadata within the visualization data 710 .
  • the visualization data includes two dimensions—Year and Teams. These can therefore be the options that are used to determine the specific value(s) of the ⁇ DIMENSION NAME(S)> variable 736 in this instance.
  • the variable ⁇ METRIC> 738 can be used to refer to or denote a metric by which the measure values will be evaluated as part of the focusing effort.
  • the data structure 724 can include a specification of options for the value of this metric variable such as the set ⁇ Starting Value, Ending Value, Average Value, Median Value, Percent Change, Absolute Change, Volatility, . . . ⁇ , as shown by FIG. 7 D .
  • each of these metrics options can be associated with a corresponding model that defines how that metric is to be computed, as shown by FIG. 7 E .
  • the Average Value metric option can be associated with an Average Value Model 750 that defines how an average value will be computed in terms of various input and output parameters.
  • the Volatility metric option can be associated with a Volatility Model 752 that defines how volatility will be computed in terms of various input and output parameters. It should be understood that some metric options may be assumed by default to apply to certain elements of the time series (e.g., the Percent Change metric being computed by default as the percent change between the first and last measure of the time series). However, if desired, a practitioner could include additional features whereby a user or automated process can further define constraints on which elements of the time series for which (or over which) metrics such as “percent change”, “absolute change”, etc., are to be computed (e.g., a user-defined time span).
  • the variable ⁇ MEASURE> 740 can be parameterized based on the visualization or other data 710 that are the subject of the focusing effort.
  • the processor can select the measure based on the data and metadata within the visualization data 710 .
  • the visualization data includes “wins” as the measure, and this measure can therefore be used as the value for the ⁇ MEASURE> variable 740 .
  • the processor specifies the focus options variables that are defined as a function of the visualization data.
  • the processor parses the visualization data 710 to select the options for the ⁇ DIMENSION NAME(S)> variable 736 and the identity of the ⁇ MEASURE> variable 740 as discussed above.
  • more or fewer variables could be defined as a function of the visualization data.
  • the set of options for the value of the ⁇ NUMBER OF ITEMS> variable 732 need not be a predefined list as shown by FIG. 7 D and could instead be defined dynamically as a function of a count of how many dimension elements are present in the visualization data (e.g., a count of the number of teams in the example of FIG. 7 B ).
  • the processor has a defined set of focus criteria candidates to use as part of the focusing effort.
  • the processor can next present the determined focus criteria candidates to a user for selection (step 402 ).
  • this presentation can occur through a focus filter menu 506 as shown by FIG. 5 .
  • This focus filter menu 506 can be a structured interactive menu that includes a plurality of fields through which a user can choose from among the various options for various focus variables.
  • the menu can be presented via narrative text (or computer-generated speech) via a GUI and/or conversational interface 106 .
  • FIG. 8 A shows an example focus filter menu 800 where the menu includes fields 802 , 804 , and 806 through which a user can define the values to be used for the ⁇ NUMBER OF ITEMS> variable 732 , ⁇ RANK GROUP> variable 734 , and ⁇ METRIC> variable 738 respectively.
  • FIG. 8 B shows how drop down menus (see 820 ) can be included with the focus filter menu 800 to provide the user with a list of the available options for the value of each variable determined as a result of the process flow of FIG. 7 .
  • the available options may also simply be made available within the context of the interaction as possible criteria to which the user may refer in natural language queries or task specifications.
  • the processor receives input from the conversational interface 106 that represents a natural language command from a user.
  • the term “command” as used herein refers to either or both declarative commands (e.g., “Tell me who the best salesperson is”) and questions/queries (e.g., “Who is the best salesperson?”).
  • the conversational interface 106 may receive this input as speech or text from the user. This input defines selections for the focus criteria candidates available through menu 506 .
  • FIG. 8 C shows an example data structure that contains the focus criteria defined in response to the user input at step 404 .
  • the example focus criteria data structure 830 expresses a focus statement of “Focus on the 3 highest ranking teams by the starting value of the wins values”. It should be understood that other formats could be used for the focus criteria data structure if desired by a practitioner.
  • the processor uses the focus criteria in combination with the visualization or other data to identify data and metadata elements within the visualization or other data that satisfy the focus criteria.
  • Logic 508 shown by FIG. 5 can perform this step.
  • the narratively relevant notional entities are computed in specific terms of the case at hand—i.e., the actual entities filling those roles are determined. For instance, in an example concerning volatility, the level of volatility is assessed for each of the series displayed in the visualization; and then the (in this case) three series with the highest level of volatility are identified in the specific terms utilized by the visualization system or in the underlying data (e.g., via the metadata labels denoting these specific entities).
  • FIG. 9 shows an example process flow for this logic 508 .
  • the processor instantiates data structures and code for computing the derived features needed for (or specified by) the focus criteria.
  • step 900 can include instantiating data and code for computing the win totals volatility for each team in the visualization data, which would include accessing Volatility Model 752 and mapping the input parameter(s) for the volatility model to specific data elements of the visualization or other data (e.g., the wins data array) and mapping the output parameter(s) for the volatility model to data structures that hold volatility values.
  • the processor computes the necessary data components for the focus criteria based on the instantiated data structures and code.
  • the processor would use the instantiated volatility model 752 to compute a volatility value for each team in the visualization data.
  • the processor applies other focus criteria to the computed data components to determine a focus configuration to use for the focusing effort. For example, if the focus criteria specified finding the 3 teams with the highest volatility in win totals, step 904 would operate to sort or rank the computed volatility values for each team and then select the 3 teams with the highest volatility values.
  • the result of step 904 would thus be a focus configuration data structure that identifies the specific elements within the visualization or other data that satisfy the focus criteria.
  • FIG. 9 B shows an example of such a focus configuration data structure 910 .
  • the focus criteria was “Focus on the 3 highest ranking teams by the starting value of the wins values”. It can be seen in FIG. 9 B that the operation of the process flow of FIG. 9 A resulted in the identification of the “Baltimore Orioles”, “Kansas City Royals”, and “New York Yankees” as the teams that satisfied these focus criteria.
  • a call can be made to the visualization platform via a selection API of the visualization platform.
  • the visualization platform triggers the selection defined in the focus configuration data and the visualization is updated to reflect the selection of the focused entities via mechanisms within the visualization platform itself (step 408 ).
  • FIG. 10 depicts an example screenshot showing how the visualization of FIG. 1 can be focused on the three teams that exhibited the highest volatility in win totals.
  • the narrative generation engine can be invoked with respect to such focus configuration data and the selected focus entities.
  • example embodiments for focus and control as described herein use innovative new data structures and associated processing logic as discussed above to provide users with a capability to specify focus criteria in entirely notional terms without a requirement that the specific focus criteria be known in advance.
  • the processing logic leverages these new data structures to translate the notional specification of focus criteria into specific components of visualization or other data that are to be the subject of the focusing effort. This is a significant improvement over conventional visualization or other data exploration focusing technology that requires a user to select specific existing elements of a visualization or data set as the subjects of the focusing effort (e.g., selecting a specific line or team on the chart shown by FIG. 3 A ).
  • the focus criteria, focus configuration data, and/or focused visualization or other data can also be used to automatically generate a focused narrative.
  • This narrative can be paired with the focused visualization.
  • FIG. 10 shows an example of such a focused narrative 1000 .
  • FIG. 11 A shows an example process flow that corresponds to the process flow of FIG. 4 with an added step for invoking a narrative generation platform to generate the focused narrative (step 1110 ). While FIG. 11 A shows step 1150 occurring after the focused visualization is generated, it should be understood that step 1150 is separate and could occur before the focused visualization is generated and/or be performed in parallel with the FIG. 4 process flow.
  • the above-referenced and incorporated '385 patent application describes technology regarding how narrative analytics can be used to automatically generate narrative texts that summarize and explain visualizations.
  • the narrative generation technology described in the above-referenced and incorporated '385 patent application can be extended to leverage the focusing efforts to also provide an appropriately focused narrative that can accompany the focused visualization.
  • the narrative generation platform 102 that performs step 1150 can be a highly flexible platform capable of generating multiple types of narrative stories using a common platform that operates on parameterized story configurations (examples of which are described in several of the above-referenced and incorporated patents and patent applications).
  • the narrative generation platform need not necessarily employ such a modular and flexible approach to narrative generation.
  • the narrative generation platform may include a number of separate software programs that are coded to generate specific types of stories, and the process flow of FIG. 11 A can decide which of these software programs will be used to generate a story with respect to a given visualization type/story type under consideration for the focusing effort.
  • step 1150 where a specific story type is expressed, using some specification language, as a configuration for a configurable narrative generation platform or engine, which can then produce narratives of the appropriate type as specified by that configuration.
  • Focused narrative generation can be triggered in any of a number of ways.
  • the focused narrative generation can use focused visualization data that is provided by the visualization platform in response to its processing of the focus configuration data (see the example process flow of FIG. 11 B whose operation is described in greater detail in the above-referenced and incorporated '385 patent application and where step 1100 uses the focused visualization data as its starting point).
  • the focusing operation involved mapping a visualization to a story configuration for a narrative generation system, this mapped story configuration can be used as the starting point for narrative generation (see FIG. 11 C ).
  • the narrative generation system can be directly invoked with the appropriate data and metadata, as determined by the focus configuration, in parallel with those data and metadata being supplied to the visualization system to produce a focused visualization if desired.
  • the type of data and metadata, including the type of the visualization remain the same, the same story type can be utilized in generating the focused narrative as was utilized in generating the original narrative, except now parameterized with appropriately restricted data, as described in the above-referenced and incorporated '385 patent application.
  • the narrative analytics technology described herein can be used to generate focused visualizations and/or focused narratives that are responsive to a user's notional specification of focus criteria as received via a conversational interface 106 .
  • a first practitioner might find it desirable to use the disclosed narrative generation technology to generate focused visualizations without any pairing with a focused narrative to accompany the focused visualization
  • a second practitioner might find it desirable to use the disclosed narrative generation technology to generate both a focused visualizations and a focused narrative that accompanies the focused visualization.
  • a third practitioner might find it desirable to use the disclosed narrative generation technology to generate a focused narrative that accompanies a visualization but where the visualization itself is not updated in a focused manner.
  • a fourth practitioner may decide to use the disclosed narrative generation technology to generate a focused narrative without any accompanying visualization.
  • the system can support driver evaluation when a user interacts with a visualization.
  • drivers many measures depicted by data visualizations exhibit values that are driven by other measures, e.g., the values of which may be determined by these other measures. These other measures can be referred to as “drivers”.
  • “drivers” for a revenue measure may include measures such as “units sold” and “price per unit”. The inventors believe that there is a need in the art for technology that uses drivers as the criteria by which to focus a narrative that accompanies a visualization of data.
  • FIG. 12 depicts an example visualization that includes a line chart showing the average attendance for major league baseball teams for each season from 1980 through 2015.
  • the example screenshot of FIG. 12 also includes narrative text 1200 that accompanies the visualization.
  • This narrative text which can be automatically generated via the technology disclosed in the above-referenced and incorporated '385 patent application, explains and summarizes various aspects of the average attendance line chart. It is believed that there is a strong need in the art for tools that would help users evaluate potential drivers of the measure shown by the line chart, or of other types of visualizations.
  • what drivers may influence average attendance at major league baseball games Is it home runs (where more home runs might be hypothesized to lead to more fan excitement which leads to improved attendance)? Is it the number of hits (under a similar assumption as home runs but where hits are perhaps not deemed as exciting by fans as home runs)? Some other driver?
  • the system can leverage a larger ecosystem of data.
  • the user can select one or more measures that could potentially drive the performance of a given subject measure in a visualization.
  • the measures selected as potential drivers can be data or metadata that are manifest within the visualization system and/or narrative analytics system but that are not necessarily reflected in the source visualization data used for the subject visualization presented to the user. An example of this can be seen in FIG. 13 .
  • FIG. 13 shows example visualization data 1300 that corresponds to the visualization seen in FIG. 12 .
  • This visualization data 1300 can live within a larger data ecosystem where other data structures and data elements stored in the system memory for either or both the visualization platform and narrative analytics are associated in some manner with data elements of the visualization data 1300 .
  • the visualization data 1300 may live within a larger ecosystem of baseball data with data structures 1302 for various teams, data structures 1304 for various games, etc.
  • Each data structure 1302 , 1304 may include data elements that describe the teams and games.
  • the data elements within this data ecosystem may serve as potential drivers for the visualization data's subject measure (in this case, average attendance).
  • FIG. 14 shows an example process flow for evaluating potential drivers with respect to a measure shown by a visualization in order to generate a visualization narrative that is focused on the potential drivers.
  • a processor processes the visualization data and associated data within the data ecosystem to determine the subject visualization measure and driver candidate options for that visualization measure.
  • This step can be performed by first extracting the subject visualization measure from the visualization data and then by selecting the data elements within the ecosystem that bear some form of a relationship with the subject measure. For example, as shown in FIG. 13 , “Average Attendance” can be selected as the subject visualization measure, and data elements such as “Hits”, “Walks”, Home Runs”, and others may be selected as driver candidate options at step 1400 .
  • an extension can query the visualization platform for all the other measures currently manifest within the memory of the application. This results in a set of possible “outside measures”.
  • FIG. 17 A shows an example array that could represent a driver for evaluation (or set of possible drivers if multiple drivers were specified).
  • FIG. 15 A shows an example of how this step can be performed.
  • a user interface menu can be presented on a user computer, and this interface can be configured to guide the user toward defining a driver candidate 1504 for a subject measure 1502 .
  • a button 1506 can be provided that responds to user selection by presenting a drop down menu or the like that lists the driver candidate options selected at step 1400 . From this list, a user can select which of the driver candidate options are to be used as driver candidates in generating the accompanying narrative. Alternatively, the menu of choices can be presented via narrative text (or computer-generated speech) via a GUI and/or conversational interface 106 . Moreover, these options may not be explicitly presented to the user at all, but simply be available for reference by the user within the context of a conversational interaction.
  • the processor receives input from the conversational interface 106 that represents a natural language command from a user.
  • This input can be in either text or speech form.
  • the term “command” as used herein refers to either or both declarative commands and questions/queries.
  • This input specifies a relationship between the subject visualization measure and a driver candidate.
  • the user has selected “Home Runs” as the driver candidate, which specifies a relationship where “Average Attendance” could be impacted by “Home Runs”.
  • FIG. 16 A shows another example user interface menu where multiple driver relationships have been specified.
  • the processor maps the specified driver relationship(s) to a driver story configuration within the narrative analytics system.
  • the specified driver relationship(s) may be mapped to an “Evaluate Driver” story configuration.
  • This story configuration can include a specification of processing logic that is executable to perform linear regression(s) of the independent variable(s) (the selected driver candidate(s)) versus the dependent variable (the subject visualization measure) in order to quantify a potential correlation between the driver candidate(s) and the subject visualization measure, as well as characterization logic (angles) that assess the results of these correlations in narrative terms to be included in the final result.
  • step 1406 may operate to map the specified driver relationship to the appropriate special-purpose narrative generation adaptation rather than to a story configuration.
  • the processor collects data associated with the driver candidate(s). This data collection can be referred to as an “outside series”.
  • the “outside series” data are kept distinct and treated differently from the subject measure because the visualization and accompanying narrative are still focused on the subject measure.
  • the additional data from these outside series can be used for regression analysis when evaluating potential driver status, but may not necessarily comprise a major focus of the narrative.
  • FIG. 17 B shows an example “outside series” data structure.
  • Steps 1410 through 1416 then operate to render narrative text from a story configuration as described in connection with the above-referenced and incorporated patents and patent applications.
  • the process instantiates the driver story configuration based on the visualization data and the specified drive candidate relationship(s) (using technology as described in the above-referenced and incorporated '385 patent application and the other above-referenced and incorporated patents and patent applications).
  • the processor computes the necessary data components for the instantiated driver story configuration.
  • this step may include computing the number of home runs for each seasons and computing linear regression parameters for use in assessing the potential influence of each season's home run totals on each season's average attendance.
  • This regression analysis uses the raw values of the subject measure (e.g., average attendance) against the raw values of any of the driver candidates (e.g., see FIG. 17 B ). The regression analytic looks, first, to assess the overall relationship between all of the driver candidates against the subject measure.
  • the processor creates an instantiated narrative outline based on the instantiated driver story configuration and the computed data components.
  • This step may include evaluating various angles that may be included in the driver story configuration (such as angles that assess whether a given characterization of the driver candidate is accurate—e.g., an angle corresponding to a “strong relationship between driver and measure” that tests whether the correlation between the measure and driver is above a threshold based on the computed data components; and similar angles corresponding to weak or medium relationships, etc.).
  • this outline is defined by the driver story configuration and may exhibit a structure such as a first sentence in a section pertaining to drivers that explains an overall summary of the driver analysis.
  • Section pertaining to drivers can then explain which of the driver candidates had the strongest relationship to the subject measure and provide supporting evidence. Still further, other portions of the section pertaining to drivers can call out other results of the calculations that may be relevant to the user's understanding of the relationships of the drivers to the subject metric.
  • the processor renders narrative text based on the narrative outline using NLG techniques as described in the above-referenced and incorporated patents and patent applications.
  • the rendered narrative text can explain the nature of the relationship between the visualization measure and the driver candidate.
  • FIG. 15 B depicts an example of such narrative text 1510 for the example case where the number of home runs is evaluated as a potential driver of average MLB attendance by season.
  • FIG. 16 A depicts an example selection menu for specifying potential driver relationships where the user has provided input for evaluating multiple potential drivers relative to the visualization measure.
  • This input may be provided via selection in a graphical user interface. It may also be provided via text or speech input in a conversational interaction.
  • the potential drivers to be evaluated may be presented explicitly as shown in FIG. 16 A ; or they may simply be available as referents to aid in the interpretation of user queries or task commands in the context of the conversational interaction.
  • step 1408 would operate to map the specified relationships to a driver story configuration that is designed to evaluate and discuss each specified relationship.
  • FIG. 16 B shows an example narrative text 1610 that could be produced as a result of the process flow of FIG. 14 applied to the specified relationships of FIG. 16 A .
  • This narrative text 1610 represents the natural language expression of the outline discussed above in relation to the FIG. 16 A example, namely a first sentence that is a summary of the driver analysis:
  • Another interactive feature of the system enables users to both enable/disable a particular analytic package from being run in the creation of a narrative as well as to customize when (and how) the results of a particular analytic are expressed in a narrative.
  • the user when generating a narrative to accompany a particular visualization, or to analyze and report on data even without such visualization, the user will be presented with the available analytics potentially utilized in generating the type of story that would be appropriate to accompany that visualization. For example, when a user is generating a narrative relating to a single line chart, as shown in the FIG. 18 , he or she can be presented with the available analytics for the story type relevant to such a chart.
  • this story type will have the analytic packages shown by FIG. 19 available.
  • “Segments” in FIG. 19 refers to analytics that would be used to generate content about interesting parts of a time series (e.g., peaks, jumps, troughs).
  • the narrative will utilize these analytics by default.
  • the narrative can include content about the longest segment of a continuing trend (see FIG. 20 ).
  • the data payload When the data payload is sent to the narrative API it contains information about whether or not to utilize this analytic. In this case, it is ‘enabled’ (see FIG. 21 showing an example portion of a data payload structure).
  • FIG. 22 shows a case where ‘Segments’ is disabled.
  • the content shown in FIG. 20 will, therefore, not appear in the accompanying narrative.
  • FIG. 23 shows an example narrative generated when ‘Segments’ is disabled.
  • voice commands can also enable/disable these features through the conversational interface 106 .
  • the available analytic packages may be presented explicitly to the user as depicted in FIG. 19 ; or, again, they may simply be available as referents for use in interpreting user speech or text inputs in the context of the conversational interaction.
  • a user can control the conditions under which the results of that analytic will be examined and conveyed in the accompanying narrative.
  • an example is presented of what a user sees when he or she digs into a particular analytic (segment analytics, as described above) in order to achieve this level of control.
  • the user can apply a ‘threshold’ that must be met in order for the results of segment analytics to be discussed in the story. This is a percent change that must be met for the corresponding content to appear in the narrative, controlled by the user in this case via a slider (although any appropriate interface mechanism might be used), as illustrated in FIG. 24 .
  • the user may also specify this threshold via speech or text input in a conversational interaction.
  • the user has indicated (as illustrated in FIG. 25 ) that he or she does not want content about segment analytics to appear in the resulting narrative unless the percent change is higher than 200%.
  • the data payload sent to the narrative API would contain information about this threshold (see FIG. 26 showing an example portion of such a data payload structure where the ‘inclusion threshold’ is set to ‘2’ (i.e., 200%)).
  • the narrative generation platform 102 will then use this information to determine whether or not to discuss the results of a particular analytic in the narrative. For example, a narrative generation platform 102 can employ a ‘derivation’ that determines whether a particular segment meets the specified criteria (see FIG. 27 ).
  • This derivation is used by the system in assessing the most interesting segment of a common trend in order to determine whether it's overall percent change meets the threshold of 200%. In this case, it does not. Therefore, content discussing the results of this analytic will not be included in the narrative.
  • another set of analytics potentially relevant in narratives appropriate for continuous data concerns trend lines.
  • a user can similarly set a threshold to be applied based on the confidence level of the actual trend line as supported by the data. For example, if a general trend can only be identified at the 85% confidence interval, it will not be discussed in the narrative if the inclusion threshold is set at 95%. That is, the general trend must be identified at least a confidence interval of 95% to be included. A user would set this threshold as illustrated in FIG. 28 :
  • a user can choose to have the narrative include content about the predicted future movement of the data series (assuming the data fit a statistically significant trend line), as well as specifying how far forward to issue a prediction (see FIG. 29 ).
  • the payload sent to the narrative API when invoking the system to generate a narrative includes this information as well (see FIG. 30 showing an example portion of such a data payload structure).
  • the narrative system is directed to include content about the prediction; after all calculations have been carried out, the resulting statistical information about the prediction is included in the data and utilized in generating the resulting narrative as illustrated by FIG. 31 .
  • the user may, again, supply this configuration via a graphical user interface, or via speech or text input of a query or task command that provides the appropriate parameterization.
  • a user can also set thresholds for applying appropriate formatting to portions of the narrative. For example, with appropriate thresholds set, a narrative could be generated to appear as shown in FIG. 32 .
  • a user When a user is customizing his or her analytics, he or she can choose to apply this sort of formatting to the content, and then set the percentage change that must be met in order to apply the formatting, as illustrated in FIG. 34 .
  • the user may convey his or her preferences via a graphical user interface, or, again via speech or text input in a conversational interaction.
  • the data payload sent to the narrative API when invoking the narrative generation system contains the appropriate information about the user's preferences, as shown by FIG. 35 .
  • a narrative generation platform 102 can then use this information to determine how to style content when it is rendered in HTML. For example, the derivation shown in FIG. 36 is used to determine whether certain content should be formatted in this way. If the test is true, appropriate HTML tags will be applied to this content, as shown by FIG. 37 . When the HTML is outputted by our system, the front end display application knows to respect the custom tag to apply the custom formatting chosen by the user, as illustrated in the FIG. 38 .

Abstract

Example embodiments are disclosed where a narrative generation platform is integrated with a conversational interface such as a Chatbot to support interactive and dynamic narrative generation in response to speech inputs from users. Such a system can be further integrated with a visualization platform to allow the speech input through the conversational interface to interactively and dynamically focus and control visualizations and/or narratives that accompany the visualizations.

Description

    CROSS-REFERENCE AND PRIORITY CLAIM TO RELATED PATENT APPLICATIONS
  • This patent application is a continuation of U.S. patent application Ser. No. 16/919,454, filed Jul. 2, 2020, and entitled “Interactive and Conversational Data Exploration”, now U.S. Pat. No. ______, which is (1) a divisional of U.S. patent application Ser. No. 15/895,800, filed Feb. 13, 2018, and entitled “Interactive and Conversational Data Exploration”, now U.S. Pat. No. 10,747,823, which (i) claims priority to U.S. provisional patent application Ser. No. 62/458,460, filed Feb. 13, 2017, and entitled “Interactive and Conversational Data Exploration”, (ii) is also a continuation-in-part of U.S. patent application Ser. No. 14/570,834, filed Dec. 15, 2014, and entitled “Automatic Generation of Narratives from Data Using Communication Goals and Narrative Analytics”, now U.S. Pat. No. 9,977,773, which is a continuation of U.S. patent application Ser. No. 14/521,264, filed Oct. 22, 2014, and entitled “Automatic Generation of Narratives from Data Using Communication Goals and Narrative Analytics”, now U.S. Pat. No. 9,720,899, and (iii) is also a continuation-in-part of U.S. patent application Ser. No. 15/666,151, filed Aug. 1, 2017, and entitled “Applied Artificial Intelligence Technology for Interactively Using Narrative Analytics to Focus and Control Visualizations of Data”, now U.S. Pat. No. 11,341,338, which claims priority to U.S. provisional patent application Ser. No. 62/382,063, filed Aug. 31, 2016, and entitled “Applied Artificial Intelligence Technology for Interactively Using Narrative Analytics to Focus and Control Visualizations of Data”, the entire disclosures of each of which are incorporated herein by reference, and (2) a continuation-in-part of U.S. patent application Ser. No. 15/253,385, filed Aug. 31, 2016, and entitled “Applied Artificial Intelligence Technology for Using Narrative Analytics to Automatically Generated Narratives from Visualization Data”, now U.S. Pat. No. 11,238,090, which claims priority to U.S. provisional patent application Ser. No. 62/249,813, filed Nov. 2, 2015, and entitled “Automatic Generation of Narratives to Accompany Visualizations”.
  • This patent application is also related to U.S. patent application Ser. No. 16/919,427, filed Jul. 2, 2020, and entitled “Interactive and Conversational Data Explorations”, now U.S. Pat. No. 11,288,328.
  • INTRODUCTION
  • There is an ever-growing need in the art for improved interactive natural language generation (NLG) technology, particularly interactive NLG technology that generates natural language responses to conversational inputs. NLG is a subfield of artificial intelligence (AI) concerned with technology that produces language as output on the basis of some input information or structure (e.g., where the input constitutes data about a situation to be analyzed and expressed in natural language). It is believed that improvements are needed in the art with respect to how conversational interfaces, including those that process speech inputs, can be used in combination with NLG technology in order to support interactive conversations between humans and machines.
  • An example of advanced NLG technology is the QUILL™ narrative generation platform from Narrative Science Inc. of Chicago, Ill. Aspects of this technology are described in the following patents and patent applications: U.S. Pat. Nos. 8,374,848, 8,355,903, 8,630,844, 8,688,434, 8,775,161, 8,843,363, 8,886,520, 8,892,417, 9,208,147, 9,251,134, 9,396,168, 9,576,009, 9,697,197, 9,697,492, and 9,720,899; and US patent application Ser. No. 14/211,444 (entitled “Method and System for Configuring Automatic Generation of Narratives from Data”, filed Mar. 14, 2014), Ser. No. 14/570,834 (entitled “Automatic Generation of Narratives from Data Using Communication Goals and Narrative Analytics, filed Dec. 15, 2014), Ser. No. 15/253,385 (entitled “Applied Artificial Intelligence Technology for Using Narrative Analytics to Automatically Generate Narratives from Visualization Data, filed Aug. 31, 2016), 62/382,063 (entitled “Applied Artificial Intelligence Technology for Interactively Using Narrative Analytics to Focus and Control Visualizations of Data”, filed Aug. 31, 2016), Ser. No. 15/666,151 (entitled “Applied Artificial Intelligence Technology for Interactively Using Narrative Analytics to Focus and Control Visualizations of Data”, filed Aug. 1, 2017), 62/460,349 (entitled “Applied Artificial Intelligence Technology for Performing Natural Language Generation (NLG) Using Composable Communication Goals and Ontologies to Generate Narrative Stories”, filed Feb. 17, 2017), 62/539,832 (entitled “Applied Artificial Intelligence Technology for Narrative Generation Based on Analysis Communication Goals”, filed Aug. 1, 2017), and 62/585,809 (entitled “Applied Artificial Intelligence Technology for Narrative Generation Based on Smart Attributes and Explanation Communication Goals”, filed Nov. 14, 2017); the entire disclosures of each of which are incorporated herein by reference.
  • The technology described in these patents and patent applications can serve as a platform and configuration model for automatic narrative generation and comprises analytic and natural language technology capable of automatically generating narratives based on structured data, in many cases primarily structured numerical data. For example, given data about investment portfolios, such as asset classes, specific assets, investment amounts, and values and changes in values, our system, appropriately configured, is capable of automatically generating narratives discussing the performance of those portfolios over some relevant period of time, e.g., a quarter. Similarly, given data about baseball games, such as box score, line score, and play-by-play information, the system, appropriately configured, is capable of automatically generating baseball game recap stories. For ease of reference, this technology can be referred to herein as a narrative generation artificial intelligence platform (or a narrative generation platform).
  • Configurations for the narrative generation platform include notional outlines comprising sections; each section comprising one or more communication goals characterizing the nature of the appropriate information to be conveyed in that section, each communication goal specifying or associated with appropriate analytic models or packages comprising methods (e.g., in the form of computer code) relevant to determining the particular information of the appropriate nature based on data at hand in the specific instance, as well as, on their input side, the nature of the relevant data, an appropriate internal data model for those data, and methods for mapping from the actual data to that internal data model. (See U.S. patent application Ser. No. 14/570,834 (now U.S. Pat. No. 9,977,773) referenced above). These communication goals are also associated with predicate forms for recasting the results of the associated analytics in an explicit propositional representation, and characterizations or angles for characterizing these results in narratively useful and informative ways. Outlines and sections also include rhetorical models that determine which results are to be voiced in the resulting narrative, and in what order and format. The result of executing the narrative generation platform with such a configuration in conjunction with specific data is a computed outline that explicitly represents the content and form of the narrative to be generated using those data. The system also comprises a configurable natural language generation component that can use the computed outline to generate the narrative in a natural language such as English.
  • For example, given data about salespeople in a given sales office, an appropriately configured system would be able to generate performance report narratives about those salespeople. The information conveyed in such narratives might track or recap (describe) how the salesperson has performed over some relevant time interval, such as a year or a quarter, according to some relevant performance metric, such as total sales, and how that performance has changed over that interval; evaluate or assess that performance, for example whether it has improved, stayed the same, or declined compared with past performance, how the salesperson's performance ranks overall compared with their peers (e.g., other salespeople in the same office), and/or how it compares to their goal or quota; and explain that performance by looking at key indicators or drivers of overall sales performance, such as the number, quality, and size of opportunities in the pipeline, the amount of time it takes for those opportunities move through the pipeline, and the rate at which they pass hurdles in that pipeline, and ultimately close. The narrative may then drill down to focus on some specific driver, e.g., the quality of sales in the pipeline, in order to help the reader understand how that driver has contributed to overall performance or a trend in that performance.
  • In other words, a narrative of this sort provides information relevant to three (related) communication goals: track performance, evaluate performance, and explain performance. These communication goals are specified within sections of the notional outline that comprises the configuration for a narrative of this sort. The configuration also comprises elements that enable the system to identify data relevant to achieving these communication goals; analyze the data in appropriate ways to produce information of the sort that would meet those communication goals; cast the results in terms of explicit representations, including narratively useful characterizations; organize these representations in a narratively coherent form; and then finally express the narrative in natural language.
  • In a certain sense, a well-constructed narrative of this sort will answer certain implicit questions that the reader can be expected to have—these are the information needs that the communication goals aim to fulfill. The answers to these initial questions will tend to raise certain other questions in the reader's mind; and the narrative will go on to answer these questions in turn. To put this in another way, the communication goals that comprise the configuration for the narrative platform correspond to questions the user has or can be expected to have; and the other elements of the system specified by or associated with those communication goals are aimed at answering those questions in a narratively coherent manner.
  • In a static narrative generated as a whole and all at once by the system for subsequent use by a reader, the configuration should aim to reflect ahead of time, as much as possible, the likely questions a reader will have upon reading the narrative, in order to generate a narrative that will seem coherent, relevant, and useful. However, the narrative generation platform and configuration model, as outlined in the above-referenced and incorporated '264 patent application, was also formulated with the notion that such narratives could be generated interactively. In other words, the system might wait for user input indicating a specific question or interest; and then execute the configuration elements associated with the communication goal corresponding to that question, which include performing the analytics and determining the characterizations relevant to answering that question or addressing those interests, and then convey the results in natural language. The system would then await further action by the user—in other words, follow-up questions—in order to proceed further in generating the narrative. In this way, the narrative unfolds interactively or conversationally, under the control of the user. The elements specified in the configuration (the communication goals and their associated analytics, characterizations, etc.), as well as their specific parameterizations given the current data, provide constraints on what the user might be interested in within the current context that enable the system to properly interpret inputs; and similarly provide the mechanisms for generating appropriate responses.
  • The kind of interaction or “conversation” described above might be (and often is) carried out via a graphical user interface. However, it might also be carried out via a natural language conversational interface, potentially utilizing speech recognition—what is currently called a chatbot. Accordingly, to fill a need in the art for improvements in interactive conversations between humans and machines, disclosed herein are example embodiments where a narrative generation artificial intelligence platform such as the ones described in the above-referenced and incorporated patents and patent applications are integrated with a conversational interface to provide such interactivity. Also disclosed are example embodiments in the context of specific use cases in interactive data exploration in which the narrative generation platform is integrated with a data visualization platform.
  • Through these and other features, example embodiments of the invention provide significant technical advances in the NLG arts by harnessing computer technology to improve how narrative generation platforms can be extended and integrated with conversational interfaces to support a wider range of human-machine interaction.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 shows an example embodiment of a system where a narrative generation artificial intelligence platform is in communication with both a visualization platform and a conversational interface.
  • FIG. 2 shows an example process flow for execution by a conversational interface to control the operations of the narrative generation artificial intelligence platform in response to speech or text inputs.
  • FIG. 3A depicts an example screenshot of a visualization generated from a set of visualization data.
  • FIG. 3B depicts a process flow for a conventional manner of focusing a visualization.
  • FIG. 3C depicts an example screenshot of a focused visualization.
  • FIG. 3D depicts an example screenshot of a visualization paired with an automatically generated narrative text that explains and characterizes the visualization.
  • FIG. 4 depicts an example process flow for focusing visualizations with the aid of narrative analytics.
  • FIG. 5 depicts an example system diagram for focusing visualizations with the aid of narrative analytics.
  • FIG. 6 depicts an example screenshot where the visualization and narrative of FIG. 3 are included with a focus filter button that is selectable by a user to initiate the process of focusing the visualization and/or narrative in a user-defined manner.
  • FIG. 7A depicts an example process flow for the logic used to determine focus criteria candidates with respect to a visualization.
  • FIG. 7B depicts an example set of visualization data.
  • FIG. 7C depicts an example mapping of visualization and/or data types to generalized focus options.
  • FIG. 7D depicts an example set of generalized focus options that are associated with a visualization and/or data type.
  • FIG. 7E depict examples of models for metric options from a set of generalized focus options.
  • FIG. 8A depicts an example screenshot where the visualization that includes a focus filter menu.
  • FIG. 8B depicts an example screenshot where the visualization that includes a focus filter menu where the focus filter menu includes a drop down menu of focus options.
  • FIG. 8C depicts an example focus criteria data structure.
  • FIG. 9A depicts an example process flow for the logic used to generate a focus configuration for use with a visualization.
  • FIG. 9B depicts an example focus configuration data structure.
  • FIG. 10 depicts an example screenshot showing a visualization that has been focused based on input received through a focus filter menu.
  • FIGS. 11A-C how focused narratives can be generated as part of the visualization focusing effort.
  • FIG. 12 depicts another example screenshot of a visualization generated from a set of visualization data.
  • FIG. 13 depicts an example data ecosystem that shows relationships that exist between visualization data and other data stored in a system.
  • FIG. 14 depicts an example process flow for evaluating potential drivers with respect to a measure shown by a visualization.
  • FIG. 15A depicts an example menu for specifying a relationship between a visualization measure and a driver candidate to be evaluated.
  • FIG. 15B depicts an example screenshot of a visualization generated from a set of visualization data that is paired with an automatically generated narrative text that explains the results of evaluating the potential driver relationship specified by FIG. 15A.
  • FIG. 16A depicts an example menu for specifying a multiple relationships between a visualization measure and multiple driver candidates to be evaluated.
  • FIG. 16B depicts an example screenshot of a visualization generated from a set of visualization data that is paired with an automatically generated narrative text that explains the results of evaluating the potential driver relationships specified by FIG. 16A.
  • FIG. 17A depicts an example outside measures data structure.
  • FIG. 17B depicts an example outside series data structure.
  • FIGS. 18-23 depict examples of how analytics can be selectively enabled and disabled in an interactive manner.
  • FIGS. 24-27 depict examples of how thresholds for analytics can be interactively controlled.
  • FIGS. 28-31 depict examples of how predictive analytics can be selectively enabled and disabled.
  • FIGS. 32-38 depict examples of how the formatting of resultant narrative stories can be controlled.
  • DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS
  • FIG. 1 shows an example embodiment of a system 100 where a narrative generation artificial intelligence platform 102 is in communication with both a visualization platform 104 and a conversational interface 106 using either text or speech (such as a Chatbot). Through this conversational interface 106, the narrative generation artificial intelligence platform 102 can receive instructions and queries derived from natural language input, e.g., spoken words, for controlling a visualization and/or a narrative story about a visualization.
  • A. Conversational Interfaces 106
  • A number of commercial platforms, such as Amazon's Alexa, have been released recently to support conversational interaction via speech interface, and, in some cases, textual input. These platforms generally include a set of application programming interfaces (APIs) that are called from within an application to gather inputs from users, and direct outputs to those users based upon the application's operations given those inputs. Typically speaking, these platforms enable a developer to associate potential user inputs in natural language—i.e., questions or commands—with particular tasks to be executed by the underlying application in response to those inputs. (For example, these tasks are called intents in the Amazon Alexa platform.) When an utterance of the appropriate form is detected, the platform communicates the name of the associated task—the tasks and their names are defined by the application developer—to the underlying application via the API. The system then invokes the appropriate code to execute that task. This may result in carrying out other actions, e.g., playing music, retrieving information, making a purchase, etc.—which the application will control through other APIs to the systems that possess those capabilities.
  • Because users may phrase their questions or commands in many different ways, chatbot developers using these platforms typically must manually specify large numbers of different forms for association with a given task, a highly labor-intensive and time-consuming process. These forms or patterns may be expressed in terms of keywords; as regular expressions in a regular expression pattern language; or in terms of the more complicated and structured patterns used by a more sophisticated natural language parser. Some platforms (again, e.g., Amazon Alexa) have some capacity to generalize slightly to automatically detect slight variants of the forms directly input by the developers.
  • The user's utterance may also contain specific information for parameterizing the task appropriately, e.g., the name of the song to be played. This information will be associated with variables appropriately located in the linguistic patterns the developer has associated with the task by the speech/language interface (for example, these are called slots in Alexa). The values of these variables are also communicated to the underlying application via the API. They are then used to parameterize the code comprising the underlying application, which, upon execution, will carry out the appropriate actions specified by, and utilizing, these parameters.
  • Once the appropriate code in the underlying application has been executed, based on the name of the task communicated via the API, and the parameters of that task, and the appropriate actions have been carried out, results may be communicated back to the user in speech form and/or other modalities (e.g., text, graphics, video, etc.) using the API.
  • Within the context of chatbot platforms as briefly described here, and in terms of the use cases described below, there can be multiple roles for a narrative generation platform to be used in an interactive manner. For example, the narrative generation platform can be used to dynamically carry out appropriate analytics and generate an appropriate response based on user input—the task or query as indicated by the user, and it's parameterization—and other data.
  • As another example, the narrative generation platform can be used to help automatically and even dynamically configure aspects of the chatbot platform itself, specifically, the natural language patterns or terms that map to the tasks or intents specified by the developer or otherwise determined to be relevant. For example, as will be described in more detail below, the narrative generation platform, in the course of its operation, creates specific notional entities that may be described in the course of the narrative, for example, “the best salesperson.” These entities are then available to be used as referents by a user in the course of a conversational interaction. The narrative generation platform includes a natural language generation (NLG) component that can be used to express these notional entities in natural language. This NLG component uses a library of natural language patterns and terms in order to express these entities in natural language. These patterns can be automatically and even dynamically used to configure the set of input patterns and terms that the chatbot platform uses in order to analyze user inputs. (These patterns may need to be reformatted to fit the specific requirements of the chatbot platform itself.) The chatbot platform is then able to use these patterns and terms to determine the specific intent (query or command) denoted by the user's input, as well as the parameters for that intent provided in the input. This relieves the chatbot developer of the need to manually “program” the chatbot with these expressions and terms in order to perform this determination as is normally required.
  • More generally, in the current chatbot ecosystem, as discussed above, developers must manually enter the language patterns and terms the system will use to interpret user text or speech inputs, i.e., to map these inputs to user intents and their parameterizations. A narrative generation platform is capable of generating the natural language that will be used to provide responses to the user. The natural language in these responses is often closely correlated with the language that a user might employ in expressing a command (e.g., an intent and its appropriate parameterization) for which the response would be appropriate. Thus, the language patterns and terms used by the platform to generate this natural language are highly correlated with the language patterns and terms needed by the chatbot platform in order to interpret these user inputs can be mined (and, if necessary, transformed) to automatically produce the language patterns needed to parameterize the chatbot interface in order to appropriately interpret such inputs. This can substantially reduce or even eliminate the burden of manually producing and inputting such patterns and terms.
  • For example, associated with a communication goal such as “track (metric)” might be a predicate form with a language pattern for NLG that would generate a sentence of the form “<name-of(metric)> <tracking period> was <value-of(entity, metric)>.” (This, along with language patterns for the metric and the time period might produce a sentence such as, “Revenue last quarter was $47 thousand.”) These language patterns for NLG are very similar in form to the question, “What was revenue last quarter?”—which might be a query that the user would input in a conversational interaction. It is therefore possible to automatically generate a language pattern or set of terms that would match this query from the NLG language patterns used to generate answers to the query. These could then be used by the chatbot platform to recognize or “parse” user inputs and map them to the underlying intents (queries or task commands) and their parameterizations. Thus, it should be understood that the narrative generation platform can be used to teach the conversational interface 106 how to better understand natural language inputs from users.
  • B. Interactive and Conversational Data Exploration Using Narrative Generation Platform 102, Visualization Platform 104, and Conversational Interface 106
  • The above-referenced and incorporated patents and patent applications describe example embodiments for a narrative generation platform 102, including a narrative generation platform 102 that supports interactive narrative generation in response to user inputs, including textual and speech inputs (see, for example, the '899 patent). The above-referenced and incorporated patent applications also describe how a narrative generation platform 102 can be integrated with a visualization platform 104 to generate narratives that accompany visualizations as well as focus and control of the visualizations and/or narratives (see, for example, the '151 application). For example, the user can specify a data set to visualize; the visualization type to utilize; how the data and meta-data map to parameters of the visualization; and similar parameters. These systems also typically provide users with the capability of adjusting various parameters of the visualization. For example, for line charts, users can typically delimit the range of values on the x-axis for which the visualization will be generated—thus enabling the user to zoom in to focus on particular regions, or zoom out to look at the larger context of some data.
  • These activities are good examples of the kinds of interactions with software applications that can be readily adapted to control via speech or text interfaces using conversational platforms as described briefly above.
  • As explained in the above-referenced and incorporated patent applications and as further explained below, a narrative generation system, when linked to a visualization system, can respond dynamically as the user interactively controls the visualization system. For example, specifically, as the user changes his or her selection of the data, the nature or details of the visualization, the range of values over which the visualization will be presented, etc., the narrative generation system can automatically generate a new narrative appropriate to the new visualization created in response to these directives. If the overall system is designed so that the user provides these directives via a conversational speech interface rather than a graphical user interface, the narrative generation system can operate similarly within such an environment to dynamically alter the nature of the narrative accompanying the visualization in response to the user's spoken dialog request. Moreover, if desired, the resulting narrative can be read to the user via a text to speech application. This is the first and most direct way of utilizing conversational interface technology to interactively control narrative generation in the context of exploratory data analysis.
  • It should be understood that the narrative generation platform 102, when linked to a visualization platform 104 in this manner, provides significantly greater opportunity for user interaction and control than the visualization platform 104 on its own can provide. Some of these enhancements relate to the control and parameterization of aspects of the integrated system that pertain directly to the narrative generation component. For example, a user can control the length or level of detail at which a narrative will be generated; the format to be utilized—paragraphs, bulleted lists, etc.—and so on. Thus, when the overall integrated system, including both the visualization and narrative generation components, is adapted for voice control via a conversational speech interface 106, or a similar text-based conversational interface, these aspects of the user's interaction with and control of the narrative generation component constitute a second avenue for utilizing our narrative generation technology within the context of such an interface.
  • Perhaps more significantly, and again as described in in the above-referenced and incorporated patent applications and as explained below, the narrative generation platform 102, when linked to a visualization platform 104, provides capabilities for easily manipulating not only the narrative generation platform 102 itself, but the visualization platform 104 as well in useful ways that are unavailable to such systems on their own. For example, the focus filter feature described below makes it easy for users to refer to and focus on narratively and analytically meaningful entities in both the visualization and narrative aspects of the combined system. Thus, for instance, when looking at a crowded line chart with multiple lines tracking the performance of a large number of entities, e.g., baseball teams, against some performance metric, e.g., wins, this feature enables users to focus on narratively and analytically meaningful entities—for example, such as the three most improved teams over the season. The visualization and narrative are then modified to focus on just these three entities.
  • This capacity isn't available to a visualization system on its own because such systems lack the analytic capacity, and narrative intent, to identify and make available these sorts of entities (e.g., “the three most improved teams over the season”) for reference and manipulation by the user. They are not manifest in the raw data and metadata; and so simply aren't available to be presented to the user for selection as parameters for the task of focusing the narrative and the visualization. However, when these visualization systems are integrated with the example narrative generation platform 102 described below, with its analytic and natural language generation capabilities, these additional entities are created as a result of the operation of the system; and hence available for reference and manipulation by the user. In a graphical user interface, these are presented to the user via such interface conventions as (clickable) labels on the chart or in drop-down menus. When connected appropriately to a conversational text or speech interface 106, the ability to focus on these sorts of narratively meaningful entities, and the entities themselves, make possible extremely powerful interactive and conversational explorations of the data. A user simply need state, “Focus on the three most improved teams over the season,” and the integrated visualization and narrative generation system, connected to an appropriately configured chatbot interface, will modify the visualization and the accompanying narrative—and again, if desired, read the narrative back to the user through a text to speech application. Moreover, this functionality can be achieved even when the overall system includes no visualization platform 104.
  • FIG. 2 shows an example process flow for execution by a conversational interface 106 to control the operations of the narrative generation artificial intelligence platform 102. At step 200, the conversational interface receives speech input from a user (e.g., a statement such as “Focus on Entity X”, “Focus on the Team with the Most Wins”, “Why Was the Best Team So Successful?”, etc., in the context of a portion of a narrative and/or a visualization about the performance of various baseball teams). At step 202, the conversational interface translates these spoken words into task commands and queries for controlling the visualization and/or narrative. This translation can use a referent/slot model where various different words or other linguistic forms are associated with specific tasks or queries (e.g., focus tasks, drill down tasks, etc.) and various different words or terms are associated with slots (e.g., names of entities, either specific or notional). Then, at step 204, these task commands are provided to the narrative generation artificial intelligence platform, whereupon the narrative generation artificial intelligence platform updates the narrative and/or visualization based on the task commands.
  • To describe this process in more detail, once a visualization and accompanying narrative have been presented to the user, if the accompanying visualization is a line chart, or specifies other appropriate meta-data, then a task “focus” is enabled. The parameters of this task will determine the action that the system will take. For example, the user mays say “Focus on Entity X.” Via its API, the chatbot interface 106 will report to the narrative generation platform 102 that the task is “Focus.” The chatbot interface 106 will report as well the parameter “Entity X” as the entity being referred to. The narrative generation platform 102, in response to the task Focus, will then search the set of available entities for reference—which will include not only the original, given entities to be found in the data set (e.g., the Orioles), but the additional entities made available by the narrative analytics of our system—the entities about which a story might be told, such as the best team, the worst team, the most improved team, the least, as well as the two-, three-, or more top (or improved) teams, etc. Our system makes these narratively important entities available for reference by the user in subsequent interaction or conversation; and when referred to by a user through this interface, will relate them to the appropriate actual entities (e.g., the Orioles) and create an updated narrative focusing on these entities, as well as, potentially, an updated visualization by controlling the visualization platform 104 through its API. In other words, a narrative generation platform as described, provides, as part of its processing, a context in terms of which user queries and task specifications can be properly interpreted. As an example embodiment discussed further below, this can be achieved via the process flow of FIG. 4 where commands are received from the conversational interface at step 404. Another example embodiment is shown by FIG. 11A discussed below where commands are received from the conversational interface at step 404.
  • Another example of the additional interactive control provided by a narrative generation platform 102, including when integrated with a visualization platform 104, is providing users with the ability to drill down to examine drivers of particular metrics for particular entities or aggregate entities. For example, it's possible for users to drill down to visualize and receive a narrative describing the performance of the major stocks or categories driving a change in the overall value of the stock market on a given day, and how they contributed to that change. This capability, when combined with a conversational speech interface 106, as described earlier, can provide users with an extremely powerful interactive, and conversational, interface for data exploration. And again, the resulting narrative can be read to users via a text to speech application. As an example embodiment shown by FIG. 14 discussed below, this can be achieved where commands are received from the conversational interface 106 at step 1404.
  • Because the results of the interactive manipulations of the visualization and narrative platforms described above can be further manipulated by users, it is possible for a system as described above to support a relatively long interactive dialog in which users simply state how they would like to see the visualization and narrative modified to provide a different perspective or insight, and the system responds appropriately, including by reading the narrative out loud if desired; and in which this cycle can be continued until the user is satisfied with their understanding of the data being presented. Such a system can also support “navigational” utterances; e.g., after looking at a visualization and reading or listening to a narrative describing the important features of the data in that visualization, as generated by our system, the user can use verbal commands to, e.g., “go back” to the previous visualization and narrative.
  • C. Example Embodiments of a Narrative Generation Platform for Focus and Control of Visualizations Using a Conversational Speech Interface
  • Many data visualization software programs enable users to select particular aspects or components of the data presented in a given visualization in order to produce a second, related but distinct visualization, where this second visualization highlights or presents only those selected aspects/components. Such functionality in the visualization software provides users with some degree of an ability to focus a visualization in an interactive manner. For example, FIG. 3A shows an example visualization that plots the number of wins by major league baseball team for each season from 1980 through 2015. The visualization is presented in the form of a line chart, and more specifically a multi-line chart. The vertical axis corresponds to wins while the horizontal axis corresponds to years (seasons), and each line on the chart corresponds to a different baseball team. As can be seen by FIG. 3A, this multi-line chart is extremely dense in terms of information conveyed, and so rather difficult to understand; a user may therefore want to focus in on certain aspects of this visualization in order to understand it better.
  • To provide users with such a focus capability, some visualization software platforms provide users with an ability to select specific elements of the visualization. A variety of mechanisms may be utilized to provide such a selection capability (e.g., point and click selections, drop-down menus, modal dialog boxes, buttons, checkboxes, etc.). For example, with reference to FIG. 3A, a user may want to focus the visualization on a subset of specific teams. To do so, the visualization software performs the process flow of FIG. 3B. At step 300, the software receives a selection indicative of an entity corresponding to one or more of the lines of the line chart. For example, this can be a selection of three teams. Then, at step 302, the software selects the data elements within the data upon which the visualization is based that correspond(s) to the selection(s) received at step 300. Once again, continuing with the example where three teams are selected, the software would select the win totals across the subject seasons for the three selected teams. Then, at step 304, the software re-draws the line chart in a manner that limits the presented data to only the selected data elements (e.g., the lines for the selected teams. FIG. 3C depicts an example visualization that would result from step 304 after a user has selected three specific teams—the Atlanta Braves, Detroit Tigers, and New York Mets—for the focused presentation.
  • Inherent in this conventional approach to interactively focusing visualizations is that the user must be able to directly specify which specific elements of the visualization, and corresponding data, should be the focus of the focusing efforts, in terms of the data and metadata presented by the visualization system itself. This in turn requires that the user know which specific elements of the visualization, expressed in these terms, should be the focus in order to provide the additional information or insight he or she wishes. That means, continuing with the above example, the user needed to know in advance that the Atlanta Braves, Detroit Tigers, and New York Mets were the entities that should have been the subjects of the focus in order to yield the results he or she intended. Presumably, this would be based on knowledge possessed by the user that there was something potentially interesting about these three teams that made them worthy of focusing on them. It is believed that this constraint is a significant shortcoming of conventional focusing capabilities of data visualization systems. That is, the ability to focus a visualization on interesting aspects of the visualization via conventional software relies on either prior knowledge by the user about the specific data elements being visualized or the recognition of a specific element of the visualization itself that is worthy of focus (e.g., selecting the lines showing win peaks for teams in 1998 and 2001 that are higher than the peaks for other seasons).
  • For this reason, the aspects or components of data that a user may select or refer to in these visualization systems—or, in fact, any data exploration systems not involving the mechanisms described herein—are those which are already manifest within the system—specifically, those data or metadata which comprise the initial visualization with respect to which the user is making a selection (or selections), or referring, in order to produce a second visualization focusing on just those aspects or components of the data. These include such elements as specific entities or subsets of entities along the x-axis (independent variable) of a bar chart; specific measures (if there is more than one) along the y-axis (dependent variable); specific intervals along the x-axis of a line chart; specific lines in multiple-line charts; etc. In other words, the elements of the data manifest as specific entities in the system, to which a user might refer via some selection process, or in a conversational system, are limited to those which comprise the raw data or metadata initially available—e.g, those used to construct the initial visualization in the first place.
  • In sum, the focus criteria made available by conventional systems are criteria already known and explicitly represented within the initial data, e.g., visualization data (such as specific teams on the line chart of FIGS. 3A and 3C)—specifically, again, those data or metadata which comprise the initial data, such as visualization data, with respect to which the user is making a selection (or selections), or to which the user is referring, in order to produce a second visualization (and/or narrative) focusing on just those aspects or components of the data.
  • However, it is believed that there are many interesting aspects of many instances of base visualization data that are hidden within that data. Unfortunately, conventional visualization systems alone are unable to provide users with an automated means for discovering these interesting aspects of the data that are worth focusing on, and then specifying what to focus on in terms of these interesting aspects.
  • As a solution to this technical problem in the art, disclosed herein are example embodiments where new data structures and artificial intelligence logic can be utilized, both in conjunction with visualization systems and without, that support the use of notional specifications of focus criteria. That is, continuing with the example of FIG. 3A, rather than instructing the visualization software or narrative generation software to “Focus on Specific Team A” within the set of teams already manifest in the visualization data (by which we mean both the data being visualized and the metadata that describe those data and the visualization itself), described herein is an approach that defines the focus criteria in terms of characteristics of the visualization data that may not yet be known. By way of example with reference to FIG. 3A, this focusing criterion could be “Focus on the Team with the Highest Average Number of Wins per Season”. The actual entity with the highest average number of wins per season is not known by the system ahead of time, but the applied computer technology disclosed herein allows for a notional specification of such an entity that leads to its actual identification within the visualization and narrative data, which in turn can drive a more focused visualizations or narratives.
  • As disclosed in the above-referenced and incorporated '385 and '813 patent applications, narrative analytics can be used in combination with data, including visualization data, in order to carry out the automatic generation of narrative text that provides natural language explanations of, e.g., those visualization data. Thus, in example embodiments, captions can be automatically generated to accompany a visualization that summarize and explain the important aspects of that visualization in a natural language format. For example, FIG. 3D shows the visualization of FIG. 3A paired with a narrative 310 produced via the technology described the above-referenced and incorporated '385 patent application. This narrative 310 serves to summarize and explain important or interesting aspects of the visualization.
  • With the example embodiments discussed below, such narrative analytics technology can be used to generate data structures that represent notional characteristics of relevant data, such as visualization data, which in turn can be tied to specific elements of those data to support interactive focusing of narratives and/or visualizations in notional terms that correspond to interesting aspects of the data, as described above.
  • The operation of this narrative analytics technology applies narrative analytics to the raw data in order to produce derived features or categories (e.g., aggregate elements such as ranked lists or clusters, aggregate measures such as means, medians, ranges, or measures of volatility, and individual elements of interest such as outliers, etc.) that play a role in determining the appropriate data and characterizations—including in particular derived features, values, or categories themselves—that should be included in the resulting narrative. These narrative analytics are the analytic processes and methods specified in (or by) the system due to their potential relevance to the type of narrative the system has been constructed or configured to produce.
  • In regards to the issues presented by the interactive construction of more focused visualizations, it should be understood that, in light of the discussion above, the results of these analytics—which are constructed and then explicitly represented as entities within the narrative generation system—constitute entities, both notional and actual, above and beyond those representing the raw data and metadata that comprise the initial data, e.g., as associated with a visualization, themselves. Accordingly, these explicitly represented notional entities are available for presentation to users for selection (via whatever interface mechanism is preferred) as focus criteria—thereby enabling the construction and presentation of more focused visualizations (as well as more focused narratives) specified in terms of these derived features, not just in terms of the raw data and metadata comprising the initial visualization itself. These notional entities are, by the same token, available as potential referents which may play roles in queries or tasks specified by the user in a conversational interface.
  • Moreover, in example embodiments, the entities representing these derived features or categories can be represented (and presented to the user) in entirely notional terms—that is, they can represent objects or entities with specific, relevant properties, even if the user (or, for that matter, the system itself) doesn't yet know the actual objects or entities which have those properties. For example, if there is an analytic that computes the percentage increase in some metric over some interval, and additionally, one that ranks actual (input) entities according to this percentage increase, then it is possible to present to the user the possibility of selecting, to produce a more specific and focused visualization (and narrative), the following notional entity: “the (input) entity with the greatest percentage increase in the metric over the interval”—whether or not the user or the system knows (yet) the actual entity that fits that description. Indeed, by combining this description of the notional entity with appropriate metadata from an initial visualization or narrative (concerning, e.g., the nature of the metric and/or of the entities in question) it is possible to present the user with the option of selecting, for a more focused view and narrative: “the company with the greatest percentage increase in revenue over the third quarter.” In either case, this will of course turn out to be some specific company, Company A. But the point is that the user can select or refer to this company, and the data about it, simply by selecting the notional reference described in terms of the result of this analytic, or, in a conversational system, by describing the notional reference in those terms—i.e., not solely by using the name of the company as manifest in the raw data or metadata comprising the visualization. This is the difference between being able to say, “Tell me about the three teams with the best records,” and “Tell me about the Yankees, the White Sox, and the Red Sox.” A user can specify the former without knowing which teams actually fit the bill—in fact the point of the resulting narrative and/or visualization will be, in part, to inform the user of which teams actually fit that description. This enables the user to focus the subsequent narrative and/or by reference to the narratively interesting aspects or components of the data, in purely functional terms.
  • Within this context, as an example embodiment, a narrative focus filter is disclosed that integrates narrative generation technology with visualization systems to focus on the narratively salient elements of the data, as computed by relevant analytics. The narrative focus filter simplifies a complex visualization by not only using a natural language generation system to produce an insightful narrative about the visualization, but by focusing the visualization on a subset of the data based on what is most important to the user, in narrative terms, as described above.
  • Further still, in an example embodiment, a narrative is embedded into an existing visualization platform. With such an example embodiment, the interface object presenting the narrative to the user of that platform can be adapted to provide an experience whereby the user is able to focus on a view of the visualization that provides him or her with the most insight. In this sense, the narrative analytics (which may be explicitly referenced or described in the narrative itself), are what actually provide the selections and filters utilized by the user to determine the focus; the system then translates these into the specific entities, e.g., as actually used by the visualization platform, that meet the appropriate criteria. The result is a seamless integration in which entities that comprise important elements of a narrative accompanying a given visualization can be used to control the subsequent narrative and/or visualization themselves. Again, these entities may be made available for selection in a graphical user interface, or, alternatively, may be available as part of the context which may serve as referents of natural language queries or task specifications by the user. Additionally, again, it should be noted that the necessary narrative analytics can be performed, and these entities can be made available for such purpose, whether or not a narrative is actually generated or supplied to the user to accompany the initial data or visualization.
  • The use of automatic narrative generation, or its component technologies such as narrative analytics, linked with a visualization system, can also provide other opportunities to augment a user's ability to focus a visualization, beyond the use of notional entities that may have interesting aspects as described above. In particular, such an approach can make it possible for a user to interactively investigate the drivers (causes or inputs) of particular data presented in the visualization; or to directly select specific analytics to be both presented in the visualization and utilized in constructing the accompanying narrative.
  • FIG. 4 depicts an example process flow for focusing visualizations with the aid of narrative analytics. The process flow of FIG. 4 can be executed by a processor in cooperation with computer memory. For ease of illustration, FIG. 5 depicts an example system for executing the process flow of FIG. 4 . The system of FIG. 5 includes a visualization platform 104 and narrative analytics 510 which may be part of the narrative generation platform 102. The visualization platform provides the visualization data 502 that serves as the source for a visualization produced by the visualization platform. The narrative analytics 510 can access this visualization data 502 through an application programming interface (API) or other suitable data access/sharing techniques. Examples of visualization platforms that may be suitable for use with the system of FIG. 5 include the Qlik visualization platform and the Tableau visualization platform. The data may also be provided directly by another application, without reference to a visualization platform.
  • The system of FIG. 5 may employ multiple processors such as a first processor serving as the visualization platform 104 and a second processor executing the narrative analytics 510, although this need not be the case. In an example multiple processor environment, the various processors can be resident in networked computer systems.
  • The process flow of FIG. 4 describes a technical advance in how a visualization of data can be focused around a notional entity or characteristic even though a user may be unaware of which specific aspects of the visualization correspond to that entity or characteristic. To accomplish this task, a number of new data structures and new processing logic are employed. A data structure is a physical manifestation of information organized within a computing system. Examples of data structures may include data files, records, tables, arrays, trees, objects, and the like. The process flow of FIG. 4 can be triggered in any of a number of ways. For example, as shown by FIG. 6 , a “focus” button 600 or the like can be included in a visualization interface. The process flow of FIG. 4 could also be triggered by speech or text input through the conversational interface 106. In response to such triggering, the process flow of FIG. 4 can be executed.
  • To begin the focusing effort, the processor at step 400 determines focus criteria candidates based on narratively relevant characteristics of the visualization or other data. As shown by FIG. 5 , this step can be performed by logic 504. The focus criteria candidates are options that provide the user with choices, whether implicit or explicit, regarding how the visualization is to be focused. At step 400, the system may generate a list of narratively relevant and useful notional entities, represented or described in appropriate and intuitive terms—i.e., at a higher level than those provided by the raw data or metadata themselves—for presentation to the user. Alternatively, these entities may simply be available to the system as potential referents to which natural language queries or task specifications from the user may refer. Such a list can be generated in a number of ways.
  • For example, under a first approach, for each type of story potentially generated by the system, or more specifically, for each set of narrative analytics utilized in each such story type, a developer or configurer can examine the set of derived features or entities that might be computed in the course of generating a story of that type. These features or entities will be represented internally by the system as variables or notional entities. The developer or configurer can then determine appropriate language for describing each of these entities to a user, and provide these terms or phrases to the system, each linked to the corresponding internal variable or notional entity, for presentation to the user via a selection mechanism (e.g., a menu) when a story of that type is generated or would be potentially relevant (typically, within this context, to accompany an initial visualization). Alternatively, again, these entities may simply be made available as possible referents within the context of these data, to be referred to within queries or task specifications uttered by the user within a conversational setting.
  • As another example, under a second approach, for each type of story potentially generated by the system, a separate process may traverse the configuration or code for generating a story of that type, in order to automatically determine the derived features or entities that might be computed in the course of generating a story of that type. These can be determined, for example, by examining the derivations used to compute such features by the system, which must reference them in order to provide them with specific values during analysis and story generation. Alternatively, in other implementations, they may explicitly declared as the relevant notional variables for a section of an outline or configuration representing the rhetorical structure of the story to be generated. However identified, the variables or notional entities that are used to represent those derived features or entities may then be added to the list of narratively relevant entities to be presented to the user for possible selection, or that may be available for reference as part of text or speech inputs by the user. They may be included in this list automatically; or they may be presented to a developer or configurer for inclusion on the list. The appropriate language for describing these notional entities for presentation to the user may be automatically copied from the corresponding blueprints or other data structures used to represent the linguistic expressions to be utilized by a narrative generation platform in referring to these entities in actual stories; or such language may be determined explicitly by the developer or configurer.
  • FIG. 7A depicts an example embodiment for step 400. At step 700 of FIG. 7A, the processor processes the visualization data to determine a visualization type, story type or set of appropriate narrative analytics corresponding to that visualization data. The above-referenced and incorporated '385 patent application describes examples of how this determination can be made. FIG. 7B depicts an example data structure for visualization data 710 in relation to the example screenshot of FIG. 6 . The visualization data 710 includes not only specific data values for the data elements presented on the line charts of FIG. 6 but also metadata about those data values and the nature of the visualization itself. For example, the data and metadata may include an identification of a chart type (e.g., a line chart), a name for the measure being plotted (e.g., wins), a data array of values for the measure, names for the chart dimensions (e.g., years/seasons and teams), among other forms of data and metadata. It should be understood that this data and metadata can be organized in the data structure 710 in any of a number of formats. FIG. 7B is merely an example for the purposes of illustration. The appropriate visualization type, story type and/or set of narrative analytics can be determined at step 700 based on various fields of the data and metadata within visualization data 710. For example, the visualization data structure 710 may include metadata that identifies a chart type for the visualization (e.g., line chart) and other fields may indicate other characteristics of the chart (such as the number of entities/lines for the line chart and whether the line chart is a time series), which in turn indicate the appropriate visualization type, story type and/or set of narrative analytics.
  • Next, at step 702, the processor selects general focus options based on the determined story type or set of narrative analytics. The system may include data that maps visualization types or story types to general focus options to support step 702. For example, as shown by FIG. 7C, a table 720 may associate different visualization types 722 with different sets of general focus options 724. Thus, if step 700 results in a determination that the visualization type is a multi-entity line chart that includes a time series, step 702 can select the set of general focus options that are associated with this visualization type by table 720. It should be understood that while the example of FIG. 7C uses visualization type 722 as the basis for association with general focus options 724, the data structure could also use a story type or set of narrative analytics found at step 700 as the basis for selecting associated general focus options 724. Thus, by way of example, data structure 720 can associate the story type appropriate for a multi-entity line chart that includes a time series with a set of general focus options 724. Also, while FIG. 7C shows a table 720 being used for the associations with sets of general focus options, it should be understood that other techniques for association could be used, such as a rules-based approach or others.
  • FIG. 7D depicts an example set of general focus options 724 that could be associated with a visualization type or story type such as that appropriate for or corresponding to a multi-entity time series line chart. These options 724 can be organized as a data structure that includes the following as a generalized focus expression 730: “Focus on <NUMBER OF ITEMS> <RANK GROUP> <DIMENSION NAME(S)> by the <METRIC> of the <MEASURE> values” as shown by FIG. 7D. This focus expression 730 is characterized as “general” because it has not yet been provided with specific parameters as to the features or aspects of the data or metadata that are to be the subject of the focus effort. An example of a specific focus expression corresponding to this general expression would be: “Focus on the 3 highest ranking teams by the starting value of the wins values”. Another example of a specific focus expression would be “Focus on the 2 lowest ranking teams by the average value of the wins values”.
  • The tokens in this expression (e.g., <NUMBER OF ITEMS>) are variables whose values will help specify the focus filter to ultimately be applied to the visualization or other data. These variables can be parameterized to specific values in response to user input and/or automated data processing.
  • The variables <NUMBER OF ITEMS> 732 and <RANK GROUP> 734 define a rank criterion for focusing and an associated volume criterion for the rank criterion for the focusing effort. The data structure 724 can include a specification of options for these variables such as the set {1, 2, 3, . . . } for the <NUMBER OF ITEMS> variable 732 and the set {Highest, Lowest, Median, Most Average, . . . } for the <RANK GROUP> variable 734. A user can then select from among these options to define specific values for these variables.
  • The variable <DIMENSION NAME(S)> 736 can be specifically parameterized based on the visualization data 710 that is the subject of the focusing effort. The processor can select the option(s) for this variable based on the data and metadata within the visualization data 710. For example, with respect to the example of FIG. 7B, it can be seen that the visualization data includes two dimensions—Year and Teams. These can therefore be the options that are used to determine the specific value(s) of the <DIMENSION NAME(S)> variable 736 in this instance.
  • The variable <METRIC> 738 can be used to refer to or denote a metric by which the measure values will be evaluated as part of the focusing effort. The data structure 724 can include a specification of options for the value of this metric variable such as the set {Starting Value, Ending Value, Average Value, Median Value, Percent Change, Absolute Change, Volatility, . . . }, as shown by FIG. 7D. Furthermore, each of these metrics options can be associated with a corresponding model that defines how that metric is to be computed, as shown by FIG. 7E. For example, the Average Value metric option can be associated with an Average Value Model 750 that defines how an average value will be computed in terms of various input and output parameters. Similarly, the Volatility metric option can be associated with a Volatility Model 752 that defines how volatility will be computed in terms of various input and output parameters. It should be understood that some metric options may be assumed by default to apply to certain elements of the time series (e.g., the Percent Change metric being computed by default as the percent change between the first and last measure of the time series). However, if desired, a practitioner could include additional features whereby a user or automated process can further define constraints on which elements of the time series for which (or over which) metrics such as “percent change”, “absolute change”, etc., are to be computed (e.g., a user-defined time span).
  • The variable <MEASURE> 740 can be parameterized based on the visualization or other data 710 that are the subject of the focusing effort. The processor can select the measure based on the data and metadata within the visualization data 710. For example, with respect to the example of FIG. 7B, it can be seen that the visualization data includes “wins” as the measure, and this measure can therefore be used as the value for the <MEASURE> variable 740.
  • Returning to the process flow of FIG. 7A, at step 704, the processor specifies the focus options variables that are defined as a function of the visualization data. For example, at step 704, the processor parses the visualization data 710 to select the options for the <DIMENSION NAME(S)> variable 736 and the identity of the <MEASURE> variable 740 as discussed above. However, it should be understood that in other embodiments, more or fewer variables could be defined as a function of the visualization data. For example, the set of options for the value of the <NUMBER OF ITEMS> variable 732 need not be a predefined list as shown by FIG. 7D and could instead be defined dynamically as a function of a count of how many dimension elements are present in the visualization data (e.g., a count of the number of teams in the example of FIG. 7B).
  • At the conclusion of step 704, the processor has a defined set of focus criteria candidates to use as part of the focusing effort. Returning to FIGS. 4 and 5 , the processor can next present the determined focus criteria candidates to a user for selection (step 402). By way of example, this presentation can occur through a focus filter menu 506 as shown by FIG. 5 . This focus filter menu 506 can be a structured interactive menu that includes a plurality of fields through which a user can choose from among the various options for various focus variables. Alternatively, the menu can be presented via narrative text (or computer-generated speech) via a GUI and/or conversational interface 106. FIG. 8A shows an example focus filter menu 800 where the menu includes fields 802, 804, and 806 through which a user can define the values to be used for the <NUMBER OF ITEMS> variable 732, <RANK GROUP> variable 734, and <METRIC> variable 738 respectively. FIG. 8B shows how drop down menus (see 820) can be included with the focus filter menu 800 to provide the user with a list of the available options for the value of each variable determined as a result of the process flow of FIG. 7 . The available options may also simply be made available within the context of the interaction as possible criteria to which the user may refer in natural language queries or task specifications.
  • At step 404, the processor receives input from the conversational interface 106 that represents a natural language command from a user. For ease of reference, the term “command” as used herein refers to either or both declarative commands (e.g., “Tell me who the best salesperson is”) and questions/queries (e.g., “Who is the best salesperson?”). The conversational interface 106 may receive this input as speech or text from the user. This input defines selections for the focus criteria candidates available through menu 506. The system now has a specific set of focus criteria to use for its focusing effort. FIG. 8C shows an example data structure that contains the focus criteria defined in response to the user input at step 404. The example focus criteria data structure 830 expresses a focus statement of “Focus on the 3 highest ranking teams by the starting value of the wins values”. It should be understood that other formats could be used for the focus criteria data structure if desired by a practitioner.
  • At step 406, the processor uses the focus criteria in combination with the visualization or other data to identify data and metadata elements within the visualization or other data that satisfy the focus criteria. Logic 508 shown by FIG. 5 can perform this step. For step 406, the narratively relevant notional entities (derived features or entities) are computed in specific terms of the case at hand—i.e., the actual entities filling those roles are determined. For instance, in an example concerning volatility, the level of volatility is assessed for each of the series displayed in the visualization; and then the (in this case) three series with the highest level of volatility are identified in the specific terms utilized by the visualization system or in the underlying data (e.g., via the metadata labels denoting these specific entities). These computations may already have been performed by the narrative generation system, or they may be performed on demand when the user selects or refers to the notional entity or entities in question to focus on. These computations in a sense carry out a “translation” process, in which a selection by the user of entities expressed in narratively relevant notional terms (or criteria) is transformed into a selection in terms recognizable by the visualization platform itself, i.e., from among the elements of the raw data or meta-data comprising the current visualization or from other available data.
  • FIG. 9 shows an example process flow for this logic 508. At step 900 of FIG. 9 , the processor instantiates data structures and code for computing the derived features needed for (or specified by) the focus criteria. Continuing with the previous example of visualization data, if the focus criteria involved finding the 3 teams with the highest volatility in win totals, step 900 can include instantiating data and code for computing the win totals volatility for each team in the visualization data, which would include accessing Volatility Model 752 and mapping the input parameter(s) for the volatility model to specific data elements of the visualization or other data (e.g., the wins data array) and mapping the output parameter(s) for the volatility model to data structures that hold volatility values. Next, at step 902, the processor computes the necessary data components for the focus criteria based on the instantiated data structures and code. Continuing with the example, at step 902, the processor would use the instantiated volatility model 752 to compute a volatility value for each team in the visualization data. Then, at step 904, the processor applies other focus criteria to the computed data components to determine a focus configuration to use for the focusing effort. For example, if the focus criteria specified finding the 3 teams with the highest volatility in win totals, step 904 would operate to sort or rank the computed volatility values for each team and then select the 3 teams with the highest volatility values. The result of step 904 would thus be a focus configuration data structure that identifies the specific elements within the visualization or other data that satisfy the focus criteria. FIG. 9B shows an example of such a focus configuration data structure 910. In the example of FIG. 9B, the focus criteria was “Focus on the 3 highest ranking teams by the starting value of the wins values”. It can be seen in FIG. 9B that the operation of the process flow of FIG. 9A resulted in the identification of the “Baltimore Orioles”, “Kansas City Royals”, and “New York Yankees” as the teams that satisfied these focus criteria.
  • Using such focus configuration data, a call can be made to the visualization platform via a selection API of the visualization platform. When that call and the focus configuration data are received, the visualization platform triggers the selection defined in the focus configuration data and the visualization is updated to reflect the selection of the focused entities via mechanisms within the visualization platform itself (step 408). FIG. 10 depicts an example screenshot showing how the visualization of FIG. 1 can be focused on the three teams that exhibited the highest volatility in win totals. Similarly, the narrative generation engine can be invoked with respect to such focus configuration data and the selected focus entities.
  • Thus, in contrast to conventional visualization focusing techniques, example embodiments for focus and control as described herein use innovative new data structures and associated processing logic as discussed above to provide users with a capability to specify focus criteria in entirely notional terms without a requirement that the specific focus criteria be known in advance. The processing logic leverages these new data structures to translate the notional specification of focus criteria into specific components of visualization or other data that are to be the subject of the focusing effort. This is a significant improvement over conventional visualization or other data exploration focusing technology that requires a user to select specific existing elements of a visualization or data set as the subjects of the focusing effort (e.g., selecting a specific line or team on the chart shown by FIG. 3A).
  • C(1). Focused Visualizations and Focused Narratives
  • The focus criteria, focus configuration data, and/or focused visualization or other data can also be used to automatically generate a focused narrative. This narrative can be paired with the focused visualization. FIG. 10 shows an example of such a focused narrative 1000. FIG. 11A shows an example process flow that corresponds to the process flow of FIG. 4 with an added step for invoking a narrative generation platform to generate the focused narrative (step 1110). While FIG. 11A shows step 1150 occurring after the focused visualization is generated, it should be understood that step 1150 is separate and could occur before the focused visualization is generated and/or be performed in parallel with the FIG. 4 process flow. The above-referenced and incorporated '385 patent application describes technology regarding how narrative analytics can be used to automatically generate narrative texts that summarize and explain visualizations. The narrative generation technology described in the above-referenced and incorporated '385 patent application can be extended to leverage the focusing efforts to also provide an appropriately focused narrative that can accompany the focused visualization.
  • As described earlier, the narrative generation platform 102 that performs step 1150 can be a highly flexible platform capable of generating multiple types of narrative stories using a common platform that operates on parameterized story configurations (examples of which are described in several of the above-referenced and incorporated patents and patent applications). However, it should be understood that the narrative generation platform need not necessarily employ such a modular and flexible approach to narrative generation. For example, as discussed in the above-referenced and incorporated '385 patent application, the narrative generation platform may include a number of separate software programs that are coded to generate specific types of stories, and the process flow of FIG. 11A can decide which of these software programs will be used to generate a story with respect to a given visualization type/story type under consideration for the focusing effort. That being said, it is believed that the use of a highly modular and parameterized narrative generation platform in combination with focusing efforts will be particularly adept and robust when generating focused narrative text that explains a focused visualization in greater detail. As such, the descriptions below will elaborate on step 1150 where a specific story type is expressed, using some specification language, as a configuration for a configurable narrative generation platform or engine, which can then produce narratives of the appropriate type as specified by that configuration.
  • Focused narrative generation can be triggered in any of a number of ways. For example, the focused narrative generation can use focused visualization data that is provided by the visualization platform in response to its processing of the focus configuration data (see the example process flow of FIG. 11B whose operation is described in greater detail in the above-referenced and incorporated '385 patent application and where step 1100 uses the focused visualization data as its starting point). As another example, if the focusing operation involved mapping a visualization to a story configuration for a narrative generation system, this mapped story configuration can be used as the starting point for narrative generation (see FIG. 11C). Under this approach, the narrative generation system can be directly invoked with the appropriate data and metadata, as determined by the focus configuration, in parallel with those data and metadata being supplied to the visualization system to produce a focused visualization if desired. Under either exemplary approach, since the type of data and metadata, including the type of the visualization, remain the same, the same story type can be utilized in generating the focused narrative as was utilized in generating the original narrative, except now parameterized with appropriately restricted data, as described in the above-referenced and incorporated '385 patent application.
  • Thus, it can be seen that the narrative analytics technology described herein can be used to generate focused visualizations and/or focused narratives that are responsive to a user's notional specification of focus criteria as received via a conversational interface 106. For example, a first practitioner might find it desirable to use the disclosed narrative generation technology to generate focused visualizations without any pairing with a focused narrative to accompany the focused visualization, while a second practitioner might find it desirable to use the disclosed narrative generation technology to generate both a focused visualizations and a focused narrative that accompanies the focused visualization. Still further, a third practitioner might find it desirable to use the disclosed narrative generation technology to generate a focused narrative that accompanies a visualization but where the visualization itself is not updated in a focused manner. Also, a fourth practitioner may decide to use the disclosed narrative generation technology to generate a focused narrative without any accompanying visualization.
  • C(2). Driver Evaluation as the Interaction with a Visualization
  • In additional example embodiments, the system can support driver evaluation when a user interacts with a visualization. As explained in the above-referenced and incorporated U.S. Pat. No. 9,576,009, many measures depicted by data visualizations exhibit values that are driven by other measures, e.g., the values of which may be determined by these other measures. These other measures can be referred to as “drivers”. For example, “drivers” for a revenue measure may include measures such as “units sold” and “price per unit”. The inventors believe that there is a need in the art for technology that uses drivers as the criteria by which to focus a narrative that accompanies a visualization of data.
  • FIG. 12 depicts an example visualization that includes a line chart showing the average attendance for major league baseball teams for each season from 1980 through 2015. The example screenshot of FIG. 12 also includes narrative text 1200 that accompanies the visualization. This narrative text, which can be automatically generated via the technology disclosed in the above-referenced and incorporated '385 patent application, explains and summarizes various aspects of the average attendance line chart. It is believed that there is a strong need in the art for tools that would help users evaluate potential drivers of the measure shown by the line chart, or of other types of visualizations. In the context of the example of FIG. 12 , what drivers may influence average attendance at major league baseball games? Is it home runs (where more home runs might be hypothesized to lead to more fan excitement which leads to improved attendance)? Is it the number of hits (under a similar assumption as home runs but where hits are perhaps not deemed as exciting by fans as home runs)? Some other driver?
  • To support the evaluation of potential drivers as focus criteria, the system can leverage a larger ecosystem of data. In an example embodiment, the user can select one or more measures that could potentially drive the performance of a given subject measure in a visualization. The measures selected as potential drivers can be data or metadata that are manifest within the visualization system and/or narrative analytics system but that are not necessarily reflected in the source visualization data used for the subject visualization presented to the user. An example of this can be seen in FIG. 13 .
  • FIG. 13 shows example visualization data 1300 that corresponds to the visualization seen in FIG. 12 . This visualization data 1300 can live within a larger data ecosystem where other data structures and data elements stored in the system memory for either or both the visualization platform and narrative analytics are associated in some manner with data elements of the visualization data 1300. For example, the visualization data 1300 may live within a larger ecosystem of baseball data with data structures 1302 for various teams, data structures 1304 for various games, etc. Each data structure 1302, 1304 may include data elements that describe the teams and games. The data elements within this data ecosystem may serve as potential drivers for the visualization data's subject measure (in this case, average attendance).
  • FIG. 14 shows an example process flow for evaluating potential drivers with respect to a measure shown by a visualization in order to generate a visualization narrative that is focused on the potential drivers.
  • At step 1400, a processor processes the visualization data and associated data within the data ecosystem to determine the subject visualization measure and driver candidate options for that visualization measure. This step can be performed by first extracting the subject visualization measure from the visualization data and then by selecting the data elements within the ecosystem that bear some form of a relationship with the subject measure. For example, as shown in FIG. 13 , “Average Attendance” can be selected as the subject visualization measure, and data elements such as “Hits”, “Walks”, Home Runs”, and others may be selected as driver candidate options at step 1400. In an example embodiment, an extension can query the visualization platform for all the other measures currently manifest within the memory of the application. This results in a set of possible “outside measures”. The names of these measures will be what the user sees in the user interface when selecting driver options. The raw data values of these measures will be used when performing regression analysis to assess the nature of the relationship between the potential driver and the visualization measure. FIG. 17A shows an example array that could represent a driver for evaluation (or set of possible drivers if multiple drivers were specified).
  • At step 1402, the selected driver candidate options are presented to a user. FIG. 15A shows an example of how this step can be performed. A user interface menu can be presented on a user computer, and this interface can be configured to guide the user toward defining a driver candidate 1504 for a subject measure 1502. A button 1506 can be provided that responds to user selection by presenting a drop down menu or the like that lists the driver candidate options selected at step 1400. From this list, a user can select which of the driver candidate options are to be used as driver candidates in generating the accompanying narrative. Alternatively, the menu of choices can be presented via narrative text (or computer-generated speech) via a GUI and/or conversational interface 106. Moreover, these options may not be explicitly presented to the user at all, but simply be available for reference by the user within the context of a conversational interaction.
  • At step 1404, the processor receives input from the conversational interface 106 that represents a natural language command from a user. This input can be in either text or speech form. As mentioned above, the term “command” as used herein refers to either or both declarative commands and questions/queries. This input specifies a relationship between the subject visualization measure and a driver candidate. In the example of FIG. 15A, the user has selected “Home Runs” as the driver candidate, which specifies a relationship where “Average Attendance” could be impacted by “Home Runs”. FIG. 16A shows another example user interface menu where multiple driver relationships have been specified.
  • At step 1406, the processor maps the specified driver relationship(s) to a driver story configuration within the narrative analytics system. For example, the specified driver relationship(s) may be mapped to an “Evaluate Driver” story configuration. This story configuration can include a specification of processing logic that is executable to perform linear regression(s) of the independent variable(s) (the selected driver candidate(s)) versus the dependent variable (the subject visualization measure) in order to quantify a potential correlation between the driver candidate(s) and the subject visualization measure, as well as characterization logic (angles) that assess the results of these correlations in narrative terms to be included in the final result. Also, as mentioned above, in an embodiment where the narrative generation platform employs special-purpose, story type-specific adaptations of the narrative generation software rather than a configurable general purpose platform, it should be understood that step 1406 may operate to map the specified driver relationship to the appropriate special-purpose narrative generation adaptation rather than to a story configuration.
  • At step 1408, the processor collects data associated with the driver candidate(s). This data collection can be referred to as an “outside series”. The “outside series” data are kept distinct and treated differently from the subject measure because the visualization and accompanying narrative are still focused on the subject measure. The additional data from these outside series can be used for regression analysis when evaluating potential driver status, but may not necessarily comprise a major focus of the narrative. FIG. 17B shows an example “outside series” data structure.
  • Steps 1410 through 1416 then operate to render narrative text from a story configuration as described in connection with the above-referenced and incorporated patents and patent applications.
  • At step 1410, the process instantiates the driver story configuration based on the visualization data and the specified drive candidate relationship(s) (using technology as described in the above-referenced and incorporated '385 patent application and the other above-referenced and incorporated patents and patent applications).
  • Then, at step 1412, the processor computes the necessary data components for the instantiated driver story configuration. Continuing with the example where the driver story configuration is geared around evaluating how average attendance could be impacted by home runs, this step may include computing the number of home runs for each seasons and computing linear regression parameters for use in assessing the potential influence of each season's home run totals on each season's average attendance. This regression analysis uses the raw values of the subject measure (e.g., average attendance) against the raw values of any of the driver candidates (e.g., see FIG. 17B). The regression analytic looks, first, to assess the overall relationship between all of the driver candidates against the subject measure.
  • At step 1414, the processor creates an instantiated narrative outline based on the instantiated driver story configuration and the computed data components. This step may include evaluating various angles that may be included in the driver story configuration (such as angles that assess whether a given characterization of the driver candidate is accurate—e.g., an angle corresponding to a “strong relationship between driver and measure” that tests whether the correlation between the measure and driver is above a threshold based on the computed data components; and similar angles corresponding to weak or medium relationships, etc.). In an example drawn from FIG. 16A, this outline is defined by the driver story configuration and may exhibit a structure such as a first sentence in a section pertaining to drivers that explains an overall summary of the driver analysis. Subsequent parts of the section pertaining to drivers can then explain which of the driver candidates had the strongest relationship to the subject measure and provide supporting evidence. Still further, other portions of the section pertaining to drivers can call out other results of the calculations that may be relevant to the user's understanding of the relationships of the drivers to the subject metric.
  • At step 1416, the processor renders narrative text based on the narrative outline using NLG techniques as described in the above-referenced and incorporated patents and patent applications. The rendered narrative text can explain the nature of the relationship between the visualization measure and the driver candidate. FIG. 15B depicts an example of such narrative text 1510 for the example case where the number of home runs is evaluated as a potential driver of average MLB attendance by season.
  • FIG. 16A depicts an example selection menu for specifying potential driver relationships where the user has provided input for evaluating multiple potential drivers relative to the visualization measure. This input may be provided via selection in a graphical user interface. It may also be provided via text or speech input in a conversational interaction. In the latter case, the potential drivers to be evaluated may be presented explicitly as shown in FIG. 16A; or they may simply be available as referents to aid in the interpretation of user queries or task commands in the context of the conversational interaction. In an example such as this, step 1408 would operate to map the specified relationships to a driver story configuration that is designed to evaluate and discuss each specified relationship. FIG. 16B shows an example narrative text 1610 that could be produced as a result of the process flow of FIG. 14 applied to the specified relationships of FIG. 16A. This narrative text 1610 represents the natural language expression of the outline discussed above in relation to the FIG. 16A example, namely a first sentence that is a summary of the driver analysis:
      • “HRs per Team, Walks per Game, and Hits per Game each had a strong relationship with the value of attendance . . . ”
        a second section that discusses each driver candidate:
      • “ . . . but HRs per Team had the most definitive relationship. Specifically, when HRs per Team increased by 1, attendance increased 10,035. There may be other factors at play, but there is evidence of a very strong relationship.”
        and a third section that presents some additional relevant information relating to the driver analysis:
      • “Keep in mind that the uneven predictive power of Hits per Game, HRs per Team, Walks per Game on attendance (non-normal residuals) suggests that there may other factors at play besides those three.”
    C(3). Interactive Analytics
  • Another interactive feature of the system enables users to both enable/disable a particular analytic package from being run in the creation of a narrative as well as to customize when (and how) the results of a particular analytic are expressed in a narrative.
  • Specifically, when generating a narrative to accompany a particular visualization, or to analyze and report on data even without such visualization, the user will be presented with the available analytics potentially utilized in generating the type of story that would be appropriate to accompany that visualization. For example, when a user is generating a narrative relating to a single line chart, as shown in the FIG. 18 , he or she can be presented with the available analytics for the story type relevant to such a chart.
  • In this example, this story type will have the analytic packages shown by FIG. 19 available. “Segments” in FIG. 19 refers to analytics that would be used to generate content about interesting parts of a time series (e.g., peaks, jumps, troughs). The narrative will utilize these analytics by default. For example, the narrative can include content about the longest segment of a continuing trend (see FIG. 20 ).
  • When the data payload is sent to the narrative API it contains information about whether or not to utilize this analytic. In this case, it is ‘enabled’ (see FIG. 21 showing an example portion of a data payload structure).
  • However, a user could choose to ‘disable’ any of these analytic packages. The example of FIG. 22 shows a case where ‘Segments’ is disabled. The content shown in FIG. 20 will, therefore, not appear in the accompanying narrative. FIG. 23 shows an example narrative generated when ‘Segments’ is disabled. While the examples discussed below employ user input through GUIs to receive such control inputs, it should be understood that voice commands can also enable/disable these features through the conversational interface 106. In the latter case, the available analytic packages may be presented explicitly to the user as depicted in FIG. 19 ; or, again, they may simply be available as referents for use in interpreting user speech or text inputs in the context of the conversational interaction.
  • C(3) (i). Additional Analytics Configurations—Inclusion Thresholds
  • In addition to enabling/disabling a particular analytic, a user can control the conditions under which the results of that analytic will be examined and conveyed in the accompanying narrative. Here an example is presented of what a user sees when he or she digs into a particular analytic (segment analytics, as described above) in order to achieve this level of control.
  • Specifically, the user can apply a ‘threshold’ that must be met in order for the results of segment analytics to be discussed in the story. This is a percent change that must be met for the corresponding content to appear in the narrative, controlled by the user in this case via a slider (although any appropriate interface mechanism might be used), as illustrated in FIG. 24 . The user may also specify this threshold via speech or text input in a conversational interaction.
  • In this (perhaps somewhat extreme) example, the user has indicated (as illustrated in FIG. 25 ) that he or she does not want content about segment analytics to appear in the resulting narrative unless the percent change is higher than 200%. When a user applies this sort of customization, the data payload sent to the narrative API would contain information about this threshold (see FIG. 26 showing an example portion of such a data payload structure where the ‘inclusion threshold’ is set to ‘2’ (i.e., 200%)).
  • The narrative generation platform 102 will then use this information to determine whether or not to discuss the results of a particular analytic in the narrative. For example, a narrative generation platform 102 can employ a ‘derivation’ that determines whether a particular segment meets the specified criteria (see FIG. 27 ).
  • This derivation is used by the system in assessing the most interesting segment of a common trend in order to determine whether it's overall percent change meets the threshold of 200%. In this case, it does not. Therefore, content discussing the results of this analytic will not be included in the narrative.
  • C(3) (ii). Additional Analytics Configurations—Predictive Analytics
  • Continuing with the original example, another set of analytics potentially relevant in narratives appropriate for continuous data, e.g., time series, as typically conveyed in line charts, concerns trend lines. For this ‘Trend line” analytic, a user can similarly set a threshold to be applied based on the confidence level of the actual trend line as supported by the data. For example, if a general trend can only be identified at the 85% confidence interval, it will not be discussed in the narrative if the inclusion threshold is set at 95%. That is, the general trend must be identified at least a confidence interval of 95% to be included. A user would set this threshold as illustrated in FIG. 28 :
  • Also pertaining to the results of the “Trend Line” analytic, a user can choose to have the narrative include content about the predicted future movement of the data series (assuming the data fit a statistically significant trend line), as well as specifying how far forward to issue a prediction (see FIG. 29 ). When a user supplies this configuration, the payload sent to the narrative API when invoking the system to generate a narrative includes this information as well (see FIG. 30 showing an example portion of such a data payload structure). With this information included, the narrative system is directed to include content about the prediction; after all calculations have been carried out, the resulting statistical information about the prediction is included in the data and utilized in generating the resulting narrative as illustrated by FIG. 31 . The user may, again, supply this configuration via a graphical user interface, or via speech or text input of a query or task command that provides the appropriate parameterization.
  • C(3) (iii). Additional Analytics Configurations—Formatting
  • In addition to supplying thresholds for the inclusion of content in a narrative, a user can also set thresholds for applying appropriate formatting to portions of the narrative. For example, with appropriate thresholds set, a narrative could be generated to appear as shown in FIG. 32 .
  • As can be seen, in this narrative the text describing positive changes is highlighted in green, while the text describing negative changes is highlighted in red. In order to achieve this effect, a user first applies the formatting rules for ‘good changes’ and ‘bad changes’. These choices are then used when generating the narrative once a user chooses to enable formatting, as illustrated in FIG. 33 .
  • When a user is customizing his or her analytics, he or she can choose to apply this sort of formatting to the content, and then set the percentage change that must be met in order to apply the formatting, as illustrated in FIG. 34 . The user may convey his or her preferences via a graphical user interface, or, again via speech or text input in a conversational interaction.
  • When this configuration is supplied by a user, the data payload sent to the narrative API when invoking the narrative generation system contains the appropriate information about the user's preferences, as shown by FIG. 35 .
  • A narrative generation platform 102 can then use this information to determine how to style content when it is rendered in HTML. For example, the derivation shown in FIG. 36 is used to determine whether certain content should be formatted in this way. If the test is true, appropriate HTML tags will be applied to this content, as shown by FIG. 37 . When the HTML is outputted by our system, the front end display application knows to respect the custom tag to apply the custom formatting chosen by the user, as illustrated in the FIG. 38 .
  • While the invention has been described above in relation to its example embodiments, various modifications may be made thereto that still fall within the invention's scope. Such modifications to the invention will be recognizable upon review of the teachings herein.

Claims (20)

What is claimed is:
1. A system comprising:
a processor configured to interactively generate a series of unfolding natural language narrative responses to a plurality of natural language inputs that form an interactive dialog relating to a data set comprising structured numeric data, wherein each natural language input has a corresponding natural language narrative response;
wherein the processor is further configured to generate each of a plurality of the corresponding natural language narrative responses by (1) receiving data derived from the natural language input for the corresponding natural language narrative response, (2) based on the received data, parameterize a narrative analytics model relevant to a communication goal indicated by the natural language input, (3) execute the parameterized narrative analytics model with respect to the data set to determine content about the data set for the corresponding natural language narrative response, and (4) generate the corresponding natural language narrative response based on the determined content so that the corresponding natural language narrative response addresses the communication goal indicated by the natural language input and expresses the determined content in natural language.
2. The system of claim 1 wherein the processor is part of a narrative generation artificial intelligence platform, the system further comprising:
a natural language conversational interface for cooperation with the narrative generation artificial intelligence platform, wherein the natural language conversational interface is configured to (1) receive the natural language inputs from the user, (2) determine commands for the narrative generation artificial intelligence platform based on the received natural language inputs, and (3) interface with the narrative generation artificial intelligence platform to (i) provide the determined commands to the narrative generation artificial intelligence platform, wherein the provided commands serve as the received data, and (ii) receive the natural language narrative responses from the narrative generation artificial intelligence platform for sequential presentation to the user as part of the interactive dialog.
3. The system of claim 1 wherein the determined content includes a characterization of the data set derived from execution of at least one of the parameterized narrative analytics models.
4. The system of claim 1 wherein the communication goals addressed by the natural language narrative responses include a communication goal to track a performance of an entity.
5. The system of claim 1 wherein the communication goals addressed by the natural language narrative responses include a communication goal to evaluate a performance of an entity.
6. The system of claim 1 wherein the communication goals addressed by the natural language narrative responses include a communication goal to explain a performance of an entity.
7. The system of claim 1 wherein the data set comprises visualization parameter data.
8. The system of claim 7 wherein the natural language inputs include a request to focus on an aspect of a visualization derived from the visualization parameter data.
9. The system of claim 1 wherein the received data comprises a plurality of commands derived from the natural language inputs.
10. The system of claim 9 wherein the commands include a focus task.
11. The system of claim 9 wherein the commands include a drill down task.
12. The system of claim 9 wherein at least one of the commands includes a specification of an entity.
13. The system of claim 12 wherein the entity comprises a specific entity identified in at least one of the natural language inputs.
14. The system of claim 12 wherein the entity comprises a notional entity that is notionally identified in at least one of the natural language inputs.
15. The system of claim 14 wherein at least one of the narrative analytics models is parameterized based on the specification of the notional entity; and
wherein the processor is further configured to determine a specific entity to which the notional entity refers based on an analysis of the data set using the at least one narrative analytics model that is parameterized based on the specification of the notional entity; and
wherein at least one of the natural language narrative responses refers to the determined specific entity.
16. The system of claim 15 wherein the determined specific entity comprises a plurality of specific entities to which the notional entity refers.
17. The system of claim 15 wherein the processor is further configured to determine a natural language expression for referring to the determined specific entity in at least one of the natural language narrative responses.
18. The system of claim 1 wherein the at least one of the natural language inputs comprises speech input.
19. The system of claim 1 wherein at least one of the natural language narrative responses comprises speech output.
20. The system of claim 1 wherein the processor comprises a plurality of processors.
US17/957,366 2014-10-22 2022-09-30 Interactive and Conversational Data Exploration Abandoned US20230027421A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/957,366 US20230027421A1 (en) 2014-10-22 2022-09-30 Interactive and Conversational Data Exploration

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US14/521,264 US9720899B1 (en) 2011-01-07 2014-10-22 Automatic generation of narratives from data using communication goals and narrative analytics
US14/570,834 US9977773B1 (en) 2011-01-07 2014-12-15 Automatic generation of narratives from data using communication goals and narrative analytics
US201562249813P 2015-11-02 2015-11-02
US201662382063P 2016-08-31 2016-08-31
US15/253,385 US11238090B1 (en) 2015-11-02 2016-08-31 Applied artificial intelligence technology for using narrative analytics to automatically generate narratives from visualization data
US201762458460P 2017-02-13 2017-02-13
US15/666,151 US11341338B1 (en) 2016-08-31 2017-08-01 Applied artificial intelligence technology for interactively using narrative analytics to focus and control visualizations of data
US15/895,800 US10747823B1 (en) 2014-10-22 2018-02-13 Interactive and conversational data exploration
US16/919,454 US11475076B2 (en) 2014-10-22 2020-07-02 Interactive and conversational data exploration
US17/957,366 US20230027421A1 (en) 2014-10-22 2022-09-30 Interactive and Conversational Data Exploration

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US16/919,454 Continuation US11475076B2 (en) 2014-10-22 2020-07-02 Interactive and conversational data exploration

Publications (1)

Publication Number Publication Date
US20230027421A1 true US20230027421A1 (en) 2023-01-26

Family

ID=80265855

Family Applications (3)

Application Number Title Priority Date Filing Date
US16/919,454 Active US11475076B2 (en) 2014-10-22 2020-07-02 Interactive and conversational data exploration
US16/919,427 Active 2034-11-13 US11288328B2 (en) 2014-10-22 2020-07-02 Interactive and conversational data exploration
US17/957,366 Abandoned US20230027421A1 (en) 2014-10-22 2022-09-30 Interactive and Conversational Data Exploration

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US16/919,454 Active US11475076B2 (en) 2014-10-22 2020-07-02 Interactive and conversational data exploration
US16/919,427 Active 2034-11-13 US11288328B2 (en) 2014-10-22 2020-07-02 Interactive and conversational data exploration

Country Status (1)

Country Link
US (3) US11475076B2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11741301B2 (en) 2010-05-13 2023-08-29 Narrative Science Inc. System and method for using data and angles to automatically generate a narrative story
US11816438B2 (en) 2018-01-02 2023-11-14 Narrative Science Inc. Context saliency-based deictic parser for natural language processing
US11922344B2 (en) 2014-10-22 2024-03-05 Narrative Science Llc Automatic generation of narratives from data using communication goals and narrative analytics
US11921985B2 (en) 2013-03-15 2024-03-05 Narrative Science Llc Method and system for configuring automatic generation of narratives from data
US11954445B2 (en) 2017-02-17 2024-04-09 Narrative Science Llc Applied artificial intelligence technology for narrative generation based on explanation communication goals

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9208147B1 (en) 2011-01-07 2015-12-08 Narrative Science Inc. Method and apparatus for triggering the automatic generation of narratives
US10657201B1 (en) 2011-01-07 2020-05-19 Narrative Science Inc. Configurable and portable system for generating narratives
US9720899B1 (en) 2011-01-07 2017-08-01 Narrative Science, Inc. Automatic generation of narratives from data using communication goals and narrative analytics
US10943069B1 (en) 2017-02-17 2021-03-09 Narrative Science Inc. Applied artificial intelligence technology for narrative generation based on a conditional outcome framework
US11568148B1 (en) 2017-02-17 2023-01-31 Narrative Science Inc. Applied artificial intelligence technology for narrative generation based on explanation communication goals
US11561986B1 (en) 2018-01-17 2023-01-24 Narrative Science Inc. Applied artificial intelligence technology for narrative generation using an invocable analysis service
US11816435B1 (en) 2018-02-19 2023-11-14 Narrative Science Inc. Applied artificial intelligence technology for contextualizing words to a knowledge base using natural language processing
US20230350928A1 (en) * 2022-04-28 2023-11-02 Knowbl LLC Systems and methods for implementing a virtual agent performing context and query transformations using unsupervised machine learning models
CN115062101B (en) * 2022-08-18 2022-11-11 深圳比特耐特信息技术股份有限公司 Big data visualization processing method based on artificial intelligence and visualization service system

Family Cites Families (312)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4992939A (en) 1988-08-05 1991-02-12 Tyler Brian G Method of producing narrative analytical report
US5734916A (en) 1994-06-01 1998-03-31 Screenplay Systems, Inc. Method and apparatus for identifying, predicting, and reporting object relationships
US5687364A (en) 1994-09-16 1997-11-11 Xerox Corporation Method for learning to infer the topical content of documents based upon their lexical content
US5794050A (en) 1995-01-04 1998-08-11 Intelligent Text Processing, Inc. Natural language understanding system
WO1996030844A1 (en) 1995-03-28 1996-10-03 Takashi Ogata Support system for automation of story structure preparation
US5619631A (en) 1995-06-07 1997-04-08 Binaryblitz Method and apparatus for data alteration by manipulation of representational graphs
US5802495A (en) 1996-03-01 1998-09-01 Goltra; Peter Phrasing structure for the narrative display of findings
US6289363B1 (en) 1996-08-23 2001-09-11 International Business Machines Corporation Navigation editor framework for building mulitmedia titles
US6144938A (en) 1998-05-01 2000-11-07 Sun Microsystems, Inc. Voice user interface with personality
US6141010A (en) 1998-07-17 2000-10-31 B. E. Technology, Llc Computer interface method and apparatus with targeted advertising
US6842877B2 (en) 1998-12-18 2005-01-11 Tangis Corporation Contextual responses based on automated learning techniques
US6651218B1 (en) 1998-12-22 2003-11-18 Xerox Corporation Dynamic content database for multiple document genres
US6665666B1 (en) 1999-10-26 2003-12-16 International Business Machines Corporation System, method and program product for answering questions using a search engine
US6968316B1 (en) 1999-11-03 2005-11-22 Sageworks, Inc. Systems, methods and computer program products for producing narrative financial analysis reports
US7392185B2 (en) 1999-11-12 2008-06-24 Phoenix Solutions, Inc. Speech based learning/training system using semantic decoding
US6976031B1 (en) 1999-12-06 2005-12-13 Sportspilot, Inc. System and method for automatically generating a narrative report of an event, such as a sporting event
US7333967B1 (en) 1999-12-23 2008-02-19 International Business Machines Corporation Method and system for automatic computation creativity and specifically for story generation
US6757362B1 (en) 2000-03-06 2004-06-29 Avaya Technology Corp. Personal virtual assistant
US7246315B1 (en) 2000-05-10 2007-07-17 Realtime Drama, Inc. Interactive personal narrative agent system and method
US20020099730A1 (en) 2000-05-12 2002-07-25 Applied Psychology Research Limited Automatic text classification system
JP2001338117A (en) 2000-05-25 2001-12-07 Internatl Business Mach Corp <Ibm> Server, information communication terminal, method for managing sales of commodity, storage medium and program transmission device
US6697998B1 (en) 2000-06-12 2004-02-24 International Business Machines Corporation Automatic labeling of unlabeled text data
US7136791B2 (en) 2000-10-24 2006-11-14 International Business Machines Corporation Story-based organizational assessment and effect system
DE10059430A1 (en) 2000-11-30 2002-06-06 Cognis Deutschland Gmbh Finely divided emulsions
US20060129933A1 (en) 2000-12-19 2006-06-15 Sparkpoint Software, Inc. System and method for multimedia authoring and playback
US6714939B2 (en) 2001-01-08 2004-03-30 Softface, Inc. Creation of structured data from plain text
GB2372864B (en) 2001-02-28 2005-09-07 Vox Generation Ltd Spoken language interface
WO2002088997A1 (en) 2001-04-26 2002-11-07 Newsgrade Corporation Dynamic generation of personalized presentations of domain-specific information content
US20030004706A1 (en) 2001-06-27 2003-01-02 Yale Thomas W. Natural language processing system and method for knowledge management
US7075536B1 (en) 2001-07-13 2006-07-11 Cisco Technology, Inc. Incremental plotting of network topologies and other graphs through use of markup language
US20030061029A1 (en) 2001-08-29 2003-03-27 Efraim Shaket Device for conducting expectation based mixed initiative natural language dialogs
AU2003228288A1 (en) 2002-03-04 2003-09-22 University Of Southern California Sentence generator
US7526424B2 (en) 2002-03-20 2009-04-28 Microsoft Corporation Sentence realization model for a natural language generation system
WO2003090072A2 (en) 2002-04-19 2003-10-30 Computer Associates Think, Inc. System and method for client-side locale specific numeric format handling in a web environment
US7191119B2 (en) 2002-05-07 2007-03-13 International Business Machines Corporation Integrated development tool for building a natural language understanding application
US7085771B2 (en) 2002-05-17 2006-08-01 Verity, Inc System and method for automatically discovering a hierarchy of concepts from a corpus of documents
US7805302B2 (en) 2002-05-20 2010-09-28 Microsoft Corporation Applying a structured language model to information extraction
US7302383B2 (en) 2002-09-12 2007-11-27 Luis Calixto Valles Apparatus and methods for developing conversational applications
US7197503B2 (en) 2002-11-26 2007-03-27 Honeywell International Inc. Intelligent retrieval and classification of information from a product manual
US6917936B2 (en) 2002-12-18 2005-07-12 Xerox Corporation Method and apparatus for measuring similarity between documents
US7890336B2 (en) 2003-01-13 2011-02-15 Northwestern University Interactive task-sensitive assistant
US7917382B2 (en) 2003-03-05 2011-03-29 Teradata Us, Inc. Integration of visualizations, reports, and data
US7825929B2 (en) 2003-04-04 2010-11-02 Agilent Technologies, Inc. Systems, tools and methods for focus and context viewing of large collections of graphs
US8495002B2 (en) 2003-05-06 2013-07-23 International Business Machines Corporation Software tool for training and testing a knowledge base
US8019656B2 (en) 2003-05-07 2011-09-13 Cbs Interactive Inc. System and method for generating an alternative product recommendation
US7840448B2 (en) 2003-05-07 2010-11-23 Cbs Interactive Inc. System and method for automatically generating a narrative product summary
US7418496B2 (en) 2003-05-16 2008-08-26 Personnel Research Associates, Inc. Method and apparatus for survey processing
US20040255232A1 (en) 2003-06-11 2004-12-16 Northwestern University Networked presentation system
JP4382526B2 (en) 2003-07-01 2009-12-16 株式会社山武 Sentence classification apparatus and method
US7836010B2 (en) 2003-07-30 2010-11-16 Northwestern University Method and system for assessing relevant properties of work contexts for use by information services
US7895595B2 (en) 2003-07-30 2011-02-22 Northwestern University Automatic method and system for formulating and transforming representations of context used by information services
US7475010B2 (en) 2003-09-03 2009-01-06 Lingospot, Inc. Adaptive and scalable method for resolving natural language ambiguities
US20050125213A1 (en) 2003-12-04 2005-06-09 Yin Chen Apparatus, system, and method for modeling and analyzing a plurality of computing workloads
US7587307B2 (en) 2003-12-18 2009-09-08 Xerox Corporation Method and apparatus for evaluating machine translation quality
FR2864858A1 (en) 2004-01-06 2005-07-08 Thomson Licensing Sa Multimedia document digest creating device for viewing e.g. video recordings, has weighing module to weigh multimedia documents, and multimedia document digest creating module to create digest of multimedia documents
US8065383B2 (en) * 2004-05-17 2011-11-22 Simplefeed, Inc. Customizable and measurable information feeds for personalized communication
US20050273362A1 (en) 2004-06-02 2005-12-08 Catalis, Inc. Method and system for generating medical narrative
US7496621B2 (en) 2004-07-14 2009-02-24 International Business Machines Corporation Method, program, and apparatus for natural language generation
US7577634B2 (en) 2004-08-05 2009-08-18 First Look Networks Llc Method and apparatus for automatically providing expert analysis-based advice
US7496567B1 (en) 2004-10-01 2009-02-24 Terril John Steichen System and method for document categorization
US20060101335A1 (en) 2004-11-08 2006-05-11 Pisciottano Maurice A Method and apparatus for generating and storing data and for generating a narrative report
WO2006053306A2 (en) 2004-11-12 2006-05-18 Make Sence, Inc Knowledge discovery by constructing correlations using concepts or terms
US7865496B1 (en) 2004-11-30 2011-01-04 Schiller Victor H Systems, device, and methods for searching
US7778895B1 (en) 2004-12-15 2010-08-17 Intuit Inc. User interface for displaying imported tax data in association with tax line assignments
US7930169B2 (en) 2005-01-14 2011-04-19 Classified Ventures, Llc Methods and systems for generating natural language descriptions from data
US20060218485A1 (en) 2005-03-25 2006-09-28 Daniel Blumenthal Process for automatic data annotation, selection, and utilization
US20070136657A1 (en) 2005-03-25 2007-06-14 Daniel Blumenthal Process for Automatic Data Annotation, Selection, and Utilization.
WO2006122329A2 (en) 2005-05-11 2006-11-16 Planetwide Games, Inc. Creating publications using gaming-based media content
US8666928B2 (en) 2005-08-01 2014-03-04 Evi Technologies Limited Knowledge repository
US20070132767A1 (en) 2005-11-30 2007-06-14 William Wright System and method for generating stories in time and space and for analysis of story patterns in an integrated visual representation on a user interface
US8977953B1 (en) 2006-01-27 2015-03-10 Linguastat, Inc. Customizing information by combining pair of annotations from at least two different documents
US20070185862A1 (en) 2006-01-31 2007-08-09 Intellext, Inc. Methods and apparatus for determining if a search query should be issued
US20110022941A1 (en) 2006-04-11 2011-01-27 Brian Osborne Information Extraction Methods and Apparatus Including a Computer-User Interface
US20070250479A1 (en) 2006-04-20 2007-10-25 Christopher Lunt System and Method For Facilitating Collaborative Generation of Life Stories
US7900189B2 (en) 2006-04-21 2011-03-01 Raytheon Company Computer program generating
US8024666B2 (en) 2006-06-30 2011-09-20 Business Objects Software Ltd. Apparatus and method for visualizing data
ITBO20060648A1 (en) * 2006-09-20 2008-03-21 Univ Degli Studi Roma Tre METHOD FOR DYNAMIC AND SAFE MANAGEMENT OF A DATABASE RELATIONAL TABLE
US7716116B2 (en) 2006-11-02 2010-05-11 Vhs, Llc System, report, and computer-readable medium for analyzing a stock portfolio
US20080140696A1 (en) 2006-12-07 2008-06-12 Pantheon Systems, Inc. System and method for analyzing data sources to generate metadata
CA2578980A1 (en) 2007-02-19 2008-08-19 Cognos Incorporated System and method of report rendering
WO2008121930A1 (en) 2007-03-29 2008-10-09 Nesticon, Llc Creating a report having computer generated narrative text
US20080256066A1 (en) 2007-04-10 2008-10-16 Tikatok Inc. Book creation systems and methods
US8934717B2 (en) 2007-06-05 2015-01-13 Intellectual Ventures Fund 83 Llc Automatic story creation using semantic classifiers for digital assets and associated metadata
US8494944B2 (en) 2007-06-06 2013-07-23 O2 Media, LLC System, report, and method for generating natural language news-based stories
US7856390B2 (en) 2007-06-06 2010-12-21 Vhs, Llc System, report, and method for generating natural language news-based stories
US20080313130A1 (en) 2007-06-14 2008-12-18 Northwestern University Method and System for Retrieving, Selecting, and Presenting Compelling Stories form Online Sources
US9058319B2 (en) 2007-06-18 2015-06-16 International Business Machines Corporation Sub-model generation to improve classification accuracy
US8548996B2 (en) 2007-06-29 2013-10-01 Pulsepoint, Inc. Ranking content items related to an event
US9535911B2 (en) 2007-06-29 2017-01-03 Pulsepoint, Inc. Processing a content item with regard to an event
WO2009016631A2 (en) 2007-08-01 2009-02-05 Ginger Software, Inc. Automatic context sensitive language correction and enhancement using an internet corpus
GB0718259D0 (en) 2007-09-19 2007-10-31 Olton Ltd Apparatus and method for information processing
CA2639720A1 (en) 2007-09-21 2009-03-21 Neurolanguage Corporation Community based internet language training providing flexible content delivery
US8838659B2 (en) 2007-10-04 2014-09-16 Amazon Technologies, Inc. Enhanced knowledge repository
US8495042B2 (en) 2007-10-10 2013-07-23 Iti Scotland Limited Information extraction apparatus and methods
US8504908B2 (en) 2007-10-17 2013-08-06 ITI Scotland, Limited Computer-implemented methods displaying, in a first part, a document and in a second part, a selected index of entities identified in the document
US8594996B2 (en) 2007-10-17 2013-11-26 Evri Inc. NLP-based entity recognition and disambiguation
US20090119584A1 (en) 2007-11-02 2009-05-07 Steve Herbst Software Tool for Creating Outlines and Mind Maps that Generates Subtopics Automatically
WO2009061390A1 (en) 2007-11-05 2009-05-14 Enhanced Medical Decisions, Inc. Machine learning systems and methods for improved natural language processing
US8140335B2 (en) * 2007-12-11 2012-03-20 Voicebox Technologies, Inc. System and method for providing a natural language voice user interface in an integrated voice navigation services environment
US8077984B2 (en) 2008-01-04 2011-12-13 Xerox Corporation Method for computing similarity between text spans using factored word sequence kernels
US8762285B2 (en) 2008-01-06 2014-06-24 Yahoo! Inc. System and method for message clustering
US8046226B2 (en) 2008-01-18 2011-10-25 Cyberpulse, L.L.C. System and methods for reporting
JP2011516938A (en) 2008-02-22 2011-05-26 ソーシャルレップ・エルエルシー Systems and methods for measuring and managing distributed online conversations
US9037583B2 (en) * 2008-02-29 2015-05-19 Ratnakar Nitesh Geo tagging and automatic generation of metadata for photos and videos
US8463594B2 (en) 2008-03-21 2013-06-11 Sauriel Llc System and method for analyzing text using emotional intelligence factors
US8719256B2 (en) 2008-05-01 2014-05-06 Chacha Search, Inc Method and system for improvement of request processing
US8949377B2 (en) 2008-05-21 2015-02-03 The Delfin Project, Inc. Management system for a conversational system
US9141689B2 (en) 2008-06-11 2015-09-22 International Business Machines Corporation Persona management system for communications
US9870629B2 (en) 2008-06-20 2018-01-16 New Bis Safe Luxco S.À R.L Methods, apparatus and systems for data visualization and related applications
US8818803B2 (en) 2008-10-27 2014-08-26 Frank Elmo Weber Character-based automated text summarization
US8442940B1 (en) 2008-11-18 2013-05-14 Semantic Research, Inc. Systems and methods for pairing of a semantic network and a natural language processing information extraction system
US9342507B1 (en) 2008-11-25 2016-05-17 Yseop Sa Methods and apparatus for automatically generating text
CA2646117A1 (en) 2008-12-02 2010-06-02 Oculus Info Inc. System and method for visualizing connected temporal and spatial information as an integrated visual representation on a user interface
US8219513B2 (en) 2008-12-19 2012-07-10 Eastman Kodak Company System and method for generating a context enhanced work of communication
US20110113315A1 (en) 2008-12-31 2011-05-12 Microsoft Corporation Computer-assisted rich interactive narrative (rin) generation
US9092437B2 (en) 2008-12-31 2015-07-28 Microsoft Technology Licensing, Llc Experience streams for rich interactive narratives
US8630961B2 (en) 2009-01-08 2014-01-14 Mycybertwin Group Pty Ltd Chatbots
US8311863B1 (en) 2009-02-24 2012-11-13 Accenture Global Services Limited Utility high performance capability assessment
US9213687B2 (en) 2009-03-23 2015-12-15 Lawrence Au Compassion, variety and cohesion for methods of text analytics, writing, search, user interfaces
US8972445B2 (en) 2009-04-23 2015-03-03 Deep Sky Concepts, Inc. Systems and methods for storage of declarative knowledge accessible by natural language in a computer capable of appropriately responding
US9805020B2 (en) 2009-04-23 2017-10-31 Deep Sky Concepts, Inc. In-context access of stored declarative knowledge using natural language expression
US8458154B2 (en) 2009-08-14 2013-06-04 Buzzmetrics, Ltd. Methods and apparatus to classify text communications
US20110044447A1 (en) 2009-08-21 2011-02-24 Nexidia Inc. Trend discovery in audio signals
US20110077972A1 (en) 2009-09-24 2011-03-31 Agneta Breitenstein Systems and methods of clinical tracking
US8818926B2 (en) 2009-09-29 2014-08-26 Richard Scot Wallace Method for personalizing chat bots
US9600919B1 (en) 2009-10-20 2017-03-21 Yahoo! Inc. Systems and methods for assembling and/or displaying multimedia objects, modules or presentations
US20100075281A1 (en) 2009-11-13 2010-03-25 Manuel-Devadoss Johnson Smith In-Flight Entertainment Phonetic Language Translation System using Brain Interface
US20100082325A1 (en) 2009-11-16 2010-04-01 Manuel-Devadoss Johnson Smith Automated phonetic language translation system using Human Brain Interface
US9047283B1 (en) 2010-01-29 2015-06-02 Guangsheng Zhang Automated topic discovery in documents and content categorization
US8407217B1 (en) 2010-01-29 2013-03-26 Guangsheng Zhang Automated topic discovery in documents
US8515737B2 (en) 2010-04-06 2013-08-20 Automated Insights, Inc. Systems for dynamically generating and presenting narrative content
US8422852B2 (en) 2010-04-09 2013-04-16 Microsoft Corporation Automated story generation
US8825488B2 (en) 2010-04-12 2014-09-02 Adobe Systems Incorporated Method and apparatus for time synchronized script metadata
US8355903B1 (en) 2010-05-13 2013-01-15 Northwestern University System and method for using data and angles to automatically generate a narrative story
US9208147B1 (en) 2011-01-07 2015-12-08 Narrative Science Inc. Method and apparatus for triggering the automatic generation of narratives
US8374848B1 (en) 2010-05-13 2013-02-12 Northwestern University System and method for using data and derived features to automatically generate a narrative story
US8688434B1 (en) 2010-05-13 2014-04-01 Narrative Science Inc. System and method for using data to automatically generate a narrative story
US9110882B2 (en) 2010-05-14 2015-08-18 Amazon Technologies, Inc. Extracting structured knowledge from unstructured text
US8924377B2 (en) 2010-05-19 2014-12-30 Digital Map Products, Inc. Preference stack
US9552355B2 (en) 2010-05-20 2017-01-24 Xerox Corporation Dynamic bi-phrases for statistical machine translation
US8566360B2 (en) 2010-05-28 2013-10-22 Drexel University System and method for automatically generating systematic reviews of a scientific field
US9183560B2 (en) 2010-05-28 2015-11-10 Daniel H. Abelow Reality alternate
CN102262622A (en) 2010-05-31 2011-11-30 国际商业机器公司 Document processing, template generating and conceptbase generating methods and devices
US8381108B2 (en) 2010-06-21 2013-02-19 Microsoft Corporation Natural user input for driving interactive stories
US9519677B2 (en) 2010-10-08 2016-12-13 Battelle Memorial Institute Data graphing methods, articles of manufacture, and computing devices
US8606564B2 (en) 2010-11-01 2013-12-10 Yahoo! Inc. Extracting rich temporal context for business entities and events
US9792277B2 (en) 2010-12-09 2017-10-17 Rage Frameworks, Inc. System and method for determining the meaning of a document with respect to a concept
US20150120738A1 (en) 2010-12-09 2015-04-30 Rage Frameworks, Inc. System and method for document classification based on semantic analysis of the document
US20120158850A1 (en) 2010-12-21 2012-06-21 Harrison Edward R Method and apparatus for automatically creating an experiential narrative
US10657201B1 (en) 2011-01-07 2020-05-19 Narrative Science Inc. Configurable and portable system for generating narratives
US8775161B1 (en) 2011-01-07 2014-07-08 Narrative Science Inc. Method and apparatus for triggering the automatic generation of narratives
US8630844B1 (en) 2011-01-07 2014-01-14 Narrative Science Inc. Configurable and portable method, apparatus, and computer program product for generating narratives using content blocks, angels and blueprints sets
US8892417B1 (en) 2011-01-07 2014-11-18 Narrative Science, Inc. Method and apparatus for triggering the automatic generation of narratives
US10185477B1 (en) 2013-03-15 2019-01-22 Narrative Science Inc. Method and system for configuring automatic generation of narratives from data
US8886520B1 (en) 2011-01-07 2014-11-11 Narrative Science Inc. Method and apparatus for triggering the automatic generation of narratives
US9697197B1 (en) 2011-01-07 2017-07-04 Narrative Science Inc. Automatic generation of narratives from data using communication goals and narrative analytics
US9576009B1 (en) 2011-01-07 2017-02-21 Narrative Science Inc. Automatic generation of narratives from data using communication goals and narrative analytics
US9720899B1 (en) 2011-01-07 2017-08-01 Narrative Science, Inc. Automatic generation of narratives from data using communication goals and narrative analytics
US9049259B2 (en) 2011-05-03 2015-06-02 Onepatont Software Limited System and method for dynamically providing visual action or activity news feed
US8689176B2 (en) 2011-05-11 2014-04-01 International Business Machines Corporation Management of template versions
US20120310699A1 (en) 2011-06-02 2012-12-06 Siemens Corporation Approach and tool blending ad-hoc and formal workflow models in support of different stakeholder needs
WO2012171039A2 (en) * 2011-06-10 2012-12-13 Enthenergy, Llc. Sustainable energy efficiency management system
US8676566B2 (en) 2011-07-07 2014-03-18 Korea Advanced Institute Of Science And Technology Method of extracting experience sentence and classifying verb in blog
WO2013009710A1 (en) 2011-07-08 2013-01-17 Steamfunk Labs, Inc. Automated presentation of information using infographics
US10573408B2 (en) 2011-08-12 2020-02-25 drchrono inc. Dynamic forms
EP2750759B1 (en) 2011-08-29 2016-12-21 Cardiac Pacemakers, Inc. Algorithm for narrative generation
GB201115418D0 (en) 2011-09-06 2011-10-19 Shl Group Ltd Analytics
US20130096947A1 (en) 2011-10-13 2013-04-18 The Board of Trustees of the Leland Stanford Junior, University Method and System for Ontology Based Analytics
WO2013098745A2 (en) 2011-12-27 2013-07-04 Koninklijke Philips Electronics N.V. Generating information relating to a course of a procedure
US10540430B2 (en) 2011-12-28 2020-01-21 Cbs Interactive Inc. Techniques for providing a natural language narrative
US20130173285A1 (en) 2011-12-30 2013-07-04 Elwha Llc Evidence-based healthcare information management protocols
US20170140405A1 (en) 2012-03-01 2017-05-18 o9 Solutions, Inc. Global market modeling for advanced market intelligence
US9477749B2 (en) 2012-03-02 2016-10-25 Clarabridge, Inc. Apparatus for identifying root cause using unstructured data
US9569594B2 (en) 2012-03-08 2017-02-14 Nuance Communications, Inc. Methods and apparatus for generating clinical reports
US20130253910A1 (en) 2012-03-23 2013-09-26 Sententia, LLC Systems and Methods for Analyzing Digital Communications
US20130262092A1 (en) 2012-04-02 2013-10-03 Fantasy Journalist, Inc. Narrative Generator
US9406020B2 (en) 2012-04-02 2016-08-02 Taiger Spain Sl System and method for natural language querying
WO2013158778A1 (en) 2012-04-20 2013-10-24 Valant Medical Solutions, Inc. Clinical note generator
US9396758B2 (en) 2012-05-01 2016-07-19 Wochit, Inc. Semi-automatic generation of multimedia content
US8814663B2 (en) 2012-05-24 2014-08-26 Sap Ag Predictive analysis based on player segmentation
US20140059443A1 (en) * 2012-08-26 2014-02-27 Joseph Akwo Tabe Social network for media topics of information relating to the science of positivism
US9461876B2 (en) 2012-08-29 2016-10-04 Loci System and method for fuzzy concept mapping, voting ontology crowd sourcing, and technology prediction
WO2014035447A1 (en) 2012-08-30 2014-03-06 Data2Text Limited Method and apparatus for updating a previously generated text
WO2014035402A1 (en) 2012-08-30 2014-03-06 Data2Text Limited Text generation in response to alerts, using tree structures
US9336193B2 (en) 2012-08-30 2016-05-10 Arria Data2Text Limited Method and apparatus for updating a previously generated text
US8762133B2 (en) 2012-08-30 2014-06-24 Arria Data2Text Limited Method and apparatus for alert validation
US8762134B2 (en) 2012-08-30 2014-06-24 Arria Data2Text Limited Method and apparatus for situational analysis text generation
WO2014035400A1 (en) 2012-08-30 2014-03-06 Data2Text Limited Method and apparatus for alert validation
WO2014035403A1 (en) 2012-08-30 2014-03-06 Data2Text Limited Method and apparatus for annotating a graphical output
WO2014035407A1 (en) 2012-08-30 2014-03-06 Data2Text Limited Method and apparatus for referring expression generation
GB2521074A (en) 2012-08-30 2015-06-10 Arria Data2Text Ltd Method and apparatus for configurable microplanning
US9405448B2 (en) 2012-08-30 2016-08-02 Arria Data2Text Limited Method and apparatus for annotating a graphical output
US9135244B2 (en) 2012-08-30 2015-09-15 Arria Data2Text Limited Method and apparatus for configurable microplanning
US9355093B2 (en) 2012-08-30 2016-05-31 Arria Data2Text Limited Method and apparatus for referring expression generation
US9600471B2 (en) 2012-11-02 2017-03-21 Arria Data2Text Limited Method and apparatus for aggregating with information generalization
WO2014070197A1 (en) 2012-11-02 2014-05-08 Data2Text Limited Method and apparatus for aggregating with information generalization
US20140134590A1 (en) 2012-11-09 2014-05-15 Steven Richard Hiscock Jr. Progress Tracking And Management System
WO2014076525A1 (en) 2012-11-16 2014-05-22 Data2Text Limited Method and apparatus for expressing time in an output text
WO2014076524A1 (en) 2012-11-16 2014-05-22 Data2Text Limited Method and apparatus for spatial descriptions in an output text
US9424254B2 (en) 2012-11-29 2016-08-23 Thomson Reuters Global Resoures Systems and methods for natural language generation
US9529795B2 (en) 2012-11-29 2016-12-27 Thomson Reuters Global Resources Systems and methods for natural language generation
US10095692B2 (en) 2012-11-29 2018-10-09 Thornson Reuters Global Resources Unlimited Company Template bootstrapping for domain-adaptable natural language generation
KR101423544B1 (en) 2012-12-06 2014-08-01 고려대학교 산학협력단 Device and method for extracting semantic topics
US9471559B2 (en) 2012-12-10 2016-10-18 International Business Machines Corporation Deep analysis of natural language questions for question answering system
US9436663B2 (en) 2012-12-17 2016-09-06 Hewlett Packard Enterprise Development Lp Presenting documents to a user based on topics and collective opinions expressed in the documents
US10115202B2 (en) 2012-12-27 2018-10-30 Arria Data2Text Limited Method and apparatus for motion detection
WO2014102569A1 (en) 2012-12-27 2014-07-03 Arria Data2Text Limited Method and apparatus for motion description
US9235567B2 (en) 2013-01-14 2016-01-12 Xerox Corporation Multi-domain machine translation model adaptation
WO2014111753A1 (en) 2013-01-15 2014-07-24 Arria Data2Text Limited Method and apparatus for document planning
US20140208215A1 (en) 2013-01-21 2014-07-24 Salesforce.Com, Inc. Methods and systems for providing filtered report visualizations
US20170006161A9 (en) 2013-03-15 2017-01-05 Genesys Telecommunications Laboratories, Inc. Intelligent automated agent for a contact center
US20140322677A1 (en) * 2013-03-15 2014-10-30 Spenser Segal Systems and methods for computer guided coaching
US10579835B1 (en) 2013-05-22 2020-03-03 Sri International Semantic pre-processing of natural language input in a virtual personal assistant
US10198420B2 (en) 2013-06-15 2019-02-05 Microsoft Technology Licensing, Llc Telling interactive, self-directed stories with spreadsheets
US9535902B1 (en) 2013-06-28 2017-01-03 Digital Reasoning Systems, Inc. Systems and methods for entity resolution using attributes from structured and unstructured data
US9348815B1 (en) 2013-06-28 2016-05-24 Digital Reasoning Systems, Inc. Systems and methods for construction, maintenance, and improvement of knowledge representations
US9665259B2 (en) 2013-07-12 2017-05-30 Microsoft Technology Licensing, Llc Interactive digital displays
US9690840B2 (en) 2013-07-23 2017-06-27 Aware, Inc. Data analysis engine
US20150049087A1 (en) 2013-08-15 2015-02-19 International Business Machines Corporation Presenting meaningful information summary for analyzing complex visualizations
US9946711B2 (en) 2013-08-29 2018-04-17 Arria Data2Text Limited Text generation from correlated alerts
US9474068B2 (en) 2013-09-16 2016-10-18 Disney Enterprises, Inc. Storytelling simulator and device communication
US9244894B1 (en) 2013-09-16 2016-01-26 Arria Data2Text Limited Method and apparatus for interactive reports
US9396181B1 (en) 2013-09-16 2016-07-19 Arria Data2Text Limited Method, apparatus, and computer program product for user-directed reporting
US9292625B2 (en) 2013-09-23 2016-03-22 Sap Se Dynamic determination of pattern type and chart type for visual analytics
US9189742B2 (en) 2013-11-20 2015-11-17 Justin London Adaptive virtual intelligent agent
US9483520B1 (en) 2013-12-18 2016-11-01 EMC IP Holding Company LLC Analytic data focus representations for visualization generation in an information processing system
US20150178386A1 (en) 2013-12-19 2015-06-25 Heiner Oberkampf System and Method for Extracting Measurement-Entity Relations
US10073840B2 (en) 2013-12-20 2018-09-11 Microsoft Technology Licensing, Llc Unsupervised relation detection model training
US20150199339A1 (en) 2014-01-14 2015-07-16 Xerox Corporation Semantic refining of cross-lingual information retrieval results
US9495444B2 (en) 2014-02-07 2016-11-15 Quixey, Inc. Rules-based generation of search results
US10203762B2 (en) 2014-03-11 2019-02-12 Magic Leap, Inc. Methods and systems for creating virtual and augmented reality
US9892208B2 (en) 2014-04-02 2018-02-13 Microsoft Technology Licensing, Llc Entity and attribute resolution in conversational applications
KR20170021227A (en) 2014-04-02 2017-02-27 시맨틱 테크놀로지스 프로프라이어터리 리미티드 Ontology mapping method and apparatus
US10664558B2 (en) 2014-04-18 2020-05-26 Arria Data2Text Limited Method and apparatus for document planning
US9412358B2 (en) 2014-05-13 2016-08-09 At&T Intellectual Property I, L.P. System and method for data-driven socially customized models for language generation
US10318625B2 (en) 2014-05-13 2019-06-11 International Business Machines Corporation Table narration using narration templates
US9659005B2 (en) 2014-05-16 2017-05-23 Semantix Technologies Corporation System for semantic interpretation
US9721207B2 (en) 2014-05-27 2017-08-01 International Business Machines Corporation Generating written content from knowledge management systems
US20150356967A1 (en) 2014-06-08 2015-12-10 International Business Machines Corporation Generating Narrative Audio Works Using Differentiable Text-to-Speech Voices
US9460075B2 (en) 2014-06-17 2016-10-04 International Business Machines Corporation Solving and answering arithmetic and algebraic problems using natural language processing
US9767093B2 (en) 2014-06-19 2017-09-19 Nuance Communications, Inc. Syntactic parser assisted semantic rule inference
WO2015199653A1 (en) 2014-06-24 2015-12-30 Nuance Communications, Inc. Methods and apparatus for joint stochastic and deterministic dictation formatting
GB201413258D0 (en) 2014-07-25 2014-09-10 Wealthchart Ltd Report generation
US9841870B2 (en) 2014-08-21 2017-12-12 The Boeing Company Integrated visualization and analysis of a complex system
US10698585B2 (en) 2014-08-29 2020-06-30 Nuance Communications, Inc. Virtual assistant development system
US9430557B2 (en) 2014-09-17 2016-08-30 International Business Machines Corporation Automatic data interpretation and answering analytical questions with tables and charts
CN105528349B (en) 2014-09-29 2019-02-01 华为技术有限公司 The method and apparatus that question sentence parses in knowledge base
US9760240B2 (en) 2014-10-09 2017-09-12 Splunk Inc. Graphical user interface for static and adaptive thresholds
US9767145B2 (en) 2014-10-10 2017-09-19 Salesforce.Com, Inc. Visual data analysis with animated informational morphing replay
US10101889B2 (en) 2014-10-10 2018-10-16 Salesforce.Com, Inc. Dashboard builder with live data updating without exiting an edit mode
US10747823B1 (en) 2014-10-22 2020-08-18 Narrative Science Inc. Interactive and conversational data exploration
US9870362B2 (en) 2014-11-11 2018-01-16 Microsoft Technology Licensing, Llc Interactive data-driven presentations
US10387970B1 (en) 2014-11-25 2019-08-20 Intuit Inc. Systems and methods for analyzing and generating explanations for changes in tax return results
US20160162582A1 (en) 2014-12-09 2016-06-09 Moodwire, Inc. Method and system for conducting an opinion search engine and a display thereof
US20160196490A1 (en) 2015-01-02 2016-07-07 International Business Machines Corporation Method for Recommending Content to Ingest as Corpora Based on Interaction History in Natural Language Question and Answering Systems
WO2016118979A2 (en) 2015-01-23 2016-07-28 C3, Inc. Systems, methods, and devices for an enterprise internet-of-things application development platform
US10366107B2 (en) 2015-02-06 2019-07-30 International Business Machines Corporation Categorizing questions in a question answering system
US10162900B1 (en) 2015-03-09 2018-12-25 Interos Solutions Inc. Method and system of an opinion search engine with an application programming interface for providing an opinion web portal
US9741151B2 (en) 2015-04-14 2017-08-22 International Business Machines Corporation Mobile interactive comparison chart
WO2016172038A1 (en) 2015-04-19 2016-10-27 Schlumberger Technology Corporation Wellsite report system
US10353905B2 (en) 2015-04-24 2019-07-16 Salesforce.Com, Inc. Identifying entities in semi-structured content
US10311741B2 (en) 2015-07-02 2019-06-04 Pearson Education, Inc. Data extraction and analysis system and tool
US10108907B2 (en) 2015-07-17 2018-10-23 Knoema Corporation Method and system to provide related data
US10867256B2 (en) 2015-07-17 2020-12-15 Knoema Corporation Method and system to provide related data
US10631057B2 (en) 2015-07-24 2020-04-21 Nuance Communications, Inc. System and method for natural language driven search and discovery in large data sources
US10847175B2 (en) 2015-07-24 2020-11-24 Nuance Communications, Inc. System and method for natural language driven search and discovery in large data sources
US10416841B2 (en) 2015-08-10 2019-09-17 Microsoft Technology Licensing, Llc Animated data visualization video
CN107924538A (en) 2015-08-13 2018-04-17 克罗诺斯咨询集团企业有限公司 financial information reporting system
US20170061093A1 (en) 2015-08-25 2017-03-02 Rubendran Amarasingham Clinical Dashboard User Interface System and Method
US10073861B2 (en) 2015-09-03 2018-09-11 Disney Enterprises, Inc. Story albums
US10268491B2 (en) 2015-09-04 2019-04-23 Vishal Vadodaria Intelli-voyage travel
US10332297B1 (en) 2015-09-04 2019-06-25 Vishal Vadodaria Electronic note graphical user interface having interactive intelligent agent and specific note processing features
US10162870B2 (en) 2015-09-30 2018-12-25 International Business Machines Corporation Historical summary visualizer for news events
US9977826B2 (en) 2015-10-21 2018-05-22 Cloudera, Inc. Computerized method of generating and analytically evaluating multiple instances of natural language-generated text
US11222184B1 (en) 2015-11-02 2022-01-11 Narrative Science Inc. Applied artificial intelligence technology for using narrative analytics to automatically generate narratives from bar charts
WO2017112813A1 (en) 2015-12-22 2017-06-29 Sri International Multi-lingual virtual personal assistant
US10176250B2 (en) 2016-01-12 2019-01-08 International Business Machines Corporation Automated curation of documents in a corpus for a cognitive computing system
US10705721B2 (en) 2016-01-21 2020-07-07 Samsung Electronics Co., Ltd. Method and system for providing topic view in electronic device
US10127274B2 (en) 2016-02-08 2018-11-13 Taiger Spain Sl System and method for querying questions and answers
US20170242886A1 (en) 2016-02-19 2017-08-24 Jack Mobile Inc. User intent and context based search results
US10853585B2 (en) 2016-03-15 2020-12-01 Arria Data2Text Limited Method and apparatus for generating causal explanations using models derived from data
US10115108B1 (en) 2016-03-29 2018-10-30 EMC IP Holding Company LLC Rendering transaction data to identify fraud detection rule strength
CN109416826A (en) 2016-04-08 2019-03-01 Bpu控股公司 The system and method for search and matching content on social networks relevant to individual
US11250841B2 (en) 2016-06-10 2022-02-15 Conduent Business Services, Llc Natural language generation, a hybrid sequence-to-sequence approach
US10909313B2 (en) 2016-06-22 2021-02-02 Sas Institute Inc. Personalized summary generation of data visualizations
CN107004000A (en) 2016-06-29 2017-08-01 深圳狗尾草智能科技有限公司 A kind of language material generating means and method
US9569729B1 (en) 2016-07-20 2017-02-14 Chenope, Inc. Analytical system and method for assessing certain characteristics of organizations
US20180025726A1 (en) 2016-07-22 2018-01-25 International Business Machines Corporation Creating coordinated multi-chatbots using natural dialogues by means of knowledge base
US10853583B1 (en) 2016-08-31 2020-12-01 Narrative Science Inc. Applied artificial intelligence technology for selective control over narrative generation from visualizations of data
US20180082184A1 (en) 2016-09-19 2018-03-22 TCL Research America Inc. Context-aware chatbot system and method
US10726338B2 (en) 2016-11-11 2020-07-28 International Business Machines Corporation Modifying a set of instructions based on bootstrapped knowledge acquisition from a limited knowledge domain
KR20180077689A (en) 2016-12-29 2018-07-09 주식회사 엔씨소프트 Apparatus and method for generating natural language
US20180189284A1 (en) 2016-12-29 2018-07-05 Wipro Limited System and method for dynamically creating a domain ontology
US20180232443A1 (en) 2017-02-16 2018-08-16 Globality, Inc. Intelligent matching system with ontology-aided relation extraction
US10699079B1 (en) 2017-02-17 2020-06-30 Narrative Science Inc. Applied artificial intelligence technology for narrative generation based on analysis communication goals
US10943069B1 (en) 2017-02-17 2021-03-09 Narrative Science Inc. Applied artificial intelligence technology for narrative generation based on a conditional outcome framework
US11068661B1 (en) 2017-02-17 2021-07-20 Narrative Science Inc. Applied artificial intelligence technology for narrative generation based on smart attributes
US10762304B1 (en) 2017-02-17 2020-09-01 Narrative Science Applied artificial intelligence technology for performing natural language generation (NLG) using composable communication goals and ontologies to generate narrative stories
US10332505B2 (en) 2017-03-09 2019-06-25 Capital One Services, Llc Systems and methods for providing automated natural language dialogue with customers
US10963493B1 (en) 2017-04-06 2021-03-30 AIBrain Corporation Interactive game with robot system
US10853717B2 (en) 2017-04-11 2020-12-01 Microsoft Technology Licensing, Llc Creating a conversational chat bot of a specific person
US10679011B2 (en) 2017-05-10 2020-06-09 Oracle International Corporation Enabling chatbots by detecting and supporting argumentation
US10366161B2 (en) 2017-08-02 2019-07-30 International Business Machines Corporation Anaphora resolution for medical text with machine learning and relevance feedback
US10380992B2 (en) 2017-11-13 2019-08-13 GM Global Technology Operations LLC Natural language generation based on user speech style
US10540438B2 (en) 2017-12-22 2020-01-21 International Business Machines Corporation Cognitive framework to detect adverse events in free-form text
US11042709B1 (en) 2018-01-02 2021-06-22 Narrative Science Inc. Context saliency-based deictic parser for natural language processing
US11561986B1 (en) 2018-01-17 2023-01-24 Narrative Science Inc. Applied artificial intelligence technology for narrative generation using an invocable analysis service
US10534862B2 (en) 2018-02-01 2020-01-14 International Business Machines Corporation Responding to an indirect utterance by a conversational system
US11816435B1 (en) 2018-02-19 2023-11-14 Narrative Science Inc. Applied artificial intelligence technology for contextualizing words to a knowledge base using natural language processing
US10706236B1 (en) 2018-06-28 2020-07-07 Narrative Science Inc. Applied artificial intelligence technology for using natural language processing and concept expression templates to train a natural language generation system
US11500911B2 (en) 2018-07-31 2022-11-15 Sap Se Descriptive text generation for data visualizations
US10990767B1 (en) 2019-01-28 2021-04-27 Narrative Science Inc. Applied artificial intelligence technology for adaptive natural language understanding

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11741301B2 (en) 2010-05-13 2023-08-29 Narrative Science Inc. System and method for using data and angles to automatically generate a narrative story
US11921985B2 (en) 2013-03-15 2024-03-05 Narrative Science Llc Method and system for configuring automatic generation of narratives from data
US11922344B2 (en) 2014-10-22 2024-03-05 Narrative Science Llc Automatic generation of narratives from data using communication goals and narrative analytics
US11954445B2 (en) 2017-02-17 2024-04-09 Narrative Science Llc Applied artificial intelligence technology for narrative generation based on explanation communication goals
US11816438B2 (en) 2018-01-02 2023-11-14 Narrative Science Inc. Context saliency-based deictic parser for natural language processing

Also Published As

Publication number Publication date
US11475076B2 (en) 2022-10-18
US11288328B2 (en) 2022-03-29
US20200334299A1 (en) 2020-10-22
US20200334300A1 (en) 2020-10-22

Similar Documents

Publication Publication Date Title
US10747823B1 (en) Interactive and conversational data exploration
US11475076B2 (en) Interactive and conversational data exploration
US11501220B2 (en) Automatic generation of narratives from data using communication goals and narrative analytics
US20220284195A1 (en) Applied Artificial Intelligence Technology for Interactively Using Narrative Analytics to Focus and Control Visualizations of Data
US9576009B1 (en) Automatic generation of narratives from data using communication goals and narrative analytics
US9697197B1 (en) Automatic generation of narratives from data using communication goals and narrative analytics
US11651043B2 (en) Leveraging analytics across disparate computing devices
US20220284013A1 (en) Processing a logical query
US11282020B2 (en) Dynamic playback of synchronized narrated analytics playlists
KR102222451B1 (en) An apparatus for predicting the status of user&#39;s psychology and a method thereof
US8903711B2 (en) System and methods for semiautomatic generation and tuning of natural language interaction applications
US9489625B2 (en) Rapid development of virtual personal assistant applications
Martin TYCOON: Theoretical framework and software tools for multimodal interfaces
US11922344B2 (en) Automatic generation of narratives from data using communication goals and narrative analytics
US11817096B2 (en) Issue tracking system having a voice interface system for facilitating a live meeting directing status updates and modifying issue records
EP3195308B1 (en) Actions on digital document elements from voice
WO2023076342A1 (en) Interactive system using speech recognition and digital media
Sevastjanova et al. Lmfingerprints: Visual explanations of language model embedding spaces through layerwise contextualization scores
Brasoveanu et al. Syntax as a cognitive process: Left-corner parsing with visual and motor interfaces
JP7273293B2 (en) Information processing device, control method, program
Vasoya et al. Vize: A Voice-Based Interface for Data Visualization and Summarisation with Recommendation System
CN116724311A (en) Interpreting ambiguous intent modifiers in visual analytics using word co-occurrence and emotion analytics
van Schooten Building a framework for developing interaction models: Overview of current research in dialogue and interactive systems
Sentiments et al. Develop Intelligent iOS Apps with Swift

Legal Events

Date Code Title Description
AS Assignment

Owner name: NARRATIVE SCIENCE INC., ILLINOIS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BIRNBAUM, LAWRENCE A.;REEL/FRAME:061272/0395

Effective date: 20180517

Owner name: NARRATIVE SCIENCE INC., ILLINOIS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HAMMOND, KRISTIAN J.;REEL/FRAME:061272/0479

Effective date: 20180223

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

AS Assignment

Owner name: NARRATIVE SCIENCE LLC, ILLINOIS

Free format text: CHANGE OF NAME;ASSIGNOR:NARRATIVE SCIENCE INC.;REEL/FRAME:065237/0929

Effective date: 20220118

AS Assignment

Owner name: NARRATIVE SCIENCE LLC, CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:NARRATIVE SCIENCE INC.;REEL/FRAME:066884/0001

Effective date: 20220118

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION