Movatterモバイル変換


[0]ホーム

URL:


US11568148B1 - Applied artificial intelligence technology for narrative generation based on explanation communication goals - Google Patents

Applied artificial intelligence technology for narrative generation based on explanation communication goals
Download PDF

Info

Publication number
US11568148B1
US11568148B1US16/183,270US201816183270AUS11568148B1US 11568148 B1US11568148 B1US 11568148B1US 201816183270 AUS201816183270 AUS 201816183270AUS 11568148 B1US11568148 B1US 11568148B1
Authority
US
United States
Prior art keywords
narrative
attribute
data
communication goal
conditional outcome
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.)
Active, expires
Application number
US16/183,270
Inventor
Nathan D. Nichols
Andrew R. Paley
Maia Lewis Meza
Santiago Santana
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 US15/897,350external-prioritypatent/US10585983B1/en
Priority claimed from US16/047,837external-prioritypatent/US10943069B1/en
Priority claimed from US16/047,800external-prioritypatent/US10699079B1/en
Priority to US16/183,270priorityCriticalpatent/US11568148B1/en
Application filed by Narrative Science LLCfiledCriticalNarrative Science LLC
Assigned to NARRATIVE SCIENCE INC.reassignmentNARRATIVE SCIENCE INC.ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS).Assignors: Lewis Meza, Maia, NICHOLS, NATHAN D., PALEY, ANDREW R., SANTANA, SANTIAGO
Assigned to CIBC BANK USAreassignmentCIBC BANK USASECURITY INTEREST (SEE DOCUMENT FOR DETAILS).Assignors: NARRATIVE SCIENCE INC.
Assigned to NARRATIVE SCIENCE INCreassignmentNARRATIVE SCIENCE INCRELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS).Assignors: CIBC BANK USA
Priority to US18/145,193prioritypatent/US11954445B2/en
Publication of US11568148B1publicationCriticalpatent/US11568148B1/en
Application grantedgrantedCritical
Priority to US18/594,440prioritypatent/US12423525B2/en
Assigned to SALESFORCE, INC.reassignmentSALESFORCE, INC.ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS).Assignors: NARRATIVE SCIENCE LLC
Assigned to NARRATIVE SCIENCE LLCreassignmentNARRATIVE SCIENCE LLCCHANGE OF NAME (SEE DOCUMENT FOR DETAILS).Assignors: NARRATIVE SCIENCE INC.
Activelegal-statusCriticalCurrent
Adjusted expirationlegal-statusCritical

Links

Images

Classifications

Definitions

Landscapes

Abstract

Artificial intelligence (AI) technology can be used in combination with composable communication goal statements to facilitate a user's ability to quickly structure story outlines using “explanation” communication goals in a manner usable by an NLG narrative generation system without any need for the user to directly author computer code. This AI technology permits NLG systems to determine the appropriate content for inclusion in a narrative story about a data set in a manner that will satisfy a desired explanation communication goal such that the narratives will express various ideas that are deemed relevant to a given explanation communication goal.

Description

CROSS-REFERENCE AND PRIORITY CLAIM TO RELATED PATENT APPLICATIONS
This patent application claims priority to U.S. provisional patent application Ser. No. 62/585,809, filed Nov. 14, 2017, and entitled “Applied Artificial Intelligence Technology for Narrative Generation Based on Smart Attributes and Explanation Communication Goals”, the entire disclosure of which is incorporated herein by reference.
This patent application is also a continuation-in-part of U.S. patent application Ser. No. 16/047,800, filed Jul. 27, 2018, and entitled “Applied Artificial Intelligence Technology for Narrative Generation Based on Analysis Communication Goals”, where the '800 application (1) claims priority to U.S. provisional patent application Ser. No. 62/539,832, filed Aug. 1, 2017, and entitled “Applied Artificial Intelligence Technology for Narrative Generation Based on Analysis Communication Goals”, and (2) is a continuation-in-part of (i) U.S. patent application Ser. No. 15/897,331, filed Feb. 15, 2018, and entitled “Applied Artificial Intelligence Technology for Performing Natural Language Generation (NLG) Using Composable Communication Goals and Ontologies to Generate Narrative Stories”, (ii) U.S. patent application Ser. No. 15/897,350, filed Feb. 15, 2018, and entitled “Applied Artificial Intelligence Technology for Determining and Mapping Data Requirements for Narrative Stories to Support Natural Language Generation (NLG) Using Composable Communication Goals”, (iii) U.S. patent application Ser. No. 15/897,359, filed Feb. 15, 2018, and entitled “Applied Artificial Intelligence Technology for Story Outline Formation Using Composable Communication Goals to Support Natural Language Generation (NLG)”, (iv) U.S. patent application Ser. No. 15/897,364, filed Feb. 15, 2018, and entitled “Applied Artificial Intelligence Technology for Runtime Computation of Story Outlines to Support Natural Language Generation (NLG)”, (v) U.S. patent application Ser. No. 15/897,373, filed Feb. 15, 2018, and entitled “Applied Artificial Intelligence Technology for Ontology Building to Support Natural Language Generation (NLG) Using Composable Communication Goals”, and (vi) U.S. patent application Ser. No. 15/897,381, filed Feb. 15, 2018, and entitled “Applied Artificial Intelligence Technology for Interactive Story Editing to Support Natural Language Generation (NLG)”, each of which claims priority to U.S. provisional patent application Ser. No. 62/460,349, filed Feb. 17, 2017, and entitled “Applied Artificial Intelligence Technology for Performing Natural Language Generation (NLG) Using Composable Communication Goals and Ontologies to Generate Narrative Stories”, the entire disclosures of each of which are incorporated herein by reference.
This patent application is also a continuation-in-part of U.S. patent application Ser. No. 16/047,837, filed Jul. 27, 2018, and entitled “Applied Artificial Intelligence Technology for Narrative Generation Based on a Conditional Outcome Framework”, where the '837 application (1) claims priority to U.S. provisional patent application Ser. No. 62/539,832, filed Aug. 1, 2017, and entitled “Applied Artificial Intelligence Technology for Narrative Generation Based on Analysis Communication Goals”, and (2) is a continuation-in-part of (i) U.S. patent application Ser. No. 15/897,331, filed Feb. 15, 2018, and entitled “Applied Artificial Intelligence Technology for Performing Natural Language Generation (NLG) Using Composable Communication Goals and Ontologies to Generate Narrative Stories”, (ii) U.S. patent application Ser. No. 15/897,350, filed Feb. 15, 2018, and entitled “Applied Artificial Intelligence Technology for Determining and Mapping Data Requirements for Narrative Stories to Support Natural Language Generation (NLG) Using Composable Communication Goals”, (iii) U.S. patent application Ser. No. 15/897,359, filed Feb. 15, 2018, and entitled “Applied Artificial Intelligence Technology for Story Outline Formation Using Composable Communication Goals to Support Natural Language Generation (NLG)”, (iv) U.S. patent application Ser. No. 15/897,364, filed Feb. 15, 2018, and entitled “Applied Artificial Intelligence Technology for Runtime Computation of Story Outlines to Support Natural Language Generation (NLG)”, (v) U.S. patent application Ser. No. 15/897,373, filed Feb. 15, 2018, and entitled “Applied Artificial Intelligence Technology for Ontology Building to Support Natural Language Generation (NLG) Using Composable Communication Goals”, and (vi) U.S. patent application Ser. No. 15/897,381, filed Feb. 15, 2018, and entitled “Applied Artificial Intelligence Technology for Interactive Story Editing to Support Natural Language Generation (NLG)”, each of which claims priority to U.S. provisional patent application Ser. No. 62/460,349, filed Feb. 17, 2017, and entitled “Applied Artificial Intelligence Technology for Performing Natural Language Generation (NLG) Using Composable Communication Goals and Ontologies to Generate Narrative Stories”, the entire disclosures of each of which are incorporated herein by reference.
This patent application is related to U.S. patent application Ser. No. 16/183,230, filed this same day, and entitled “Applied Artificial Intelligence Technology for Narrative Generation Based on Smart Attributes”, the entire disclosure of which is incorporated herein by reference.
INTRODUCTION
There is an ever-growing need in the art for improved natural language generation (NLG) technology that harnesses computers to process data sets and automatically generate narrative stories about those data sets. 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, in the cases of most interest here, where that input constitutes data about some situation to be analyzed and expressed in natural language. Many NLG systems are known in the art that use template approaches to translate data into text. However, such conventional designs typically suffer from a variety of shortcomings such as constraints on how many data-driven ideas can be communicated per sentence, constraints on variability in word choice, and limited capabilities of analyzing data sets to determine the content that should be presented to a reader.
As technical solutions to these technical problems in the NLG arts, the inventors note that the assignee of the subject patent application has previously developed and commercialized pioneering technology that robustly generates narrative stories from data, of which a commercial embodiment 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, 9,720,890, and 9,977,773, and U.S. 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. 15/253,385 (entitled “Applied Artificial Intelligence Technology for Using Narrative Analytics to Automatically Generate Narratives from Visualization 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), Ser. No. 15/666,168 (entitled “Applied Artificial Intelligence Technology for Evaluating Drivers of Data Presented in Visualizations”, filed Aug. 1, 2017), and Ser. No. 15/666,192 (entitled “Applied Artificial Intelligence Technology for Selective Control over Narrative Generation from Visualizations of Data”, filed Aug. 1, 2017); the entire disclosures of each of which are incorporated herein by reference.
The inventors have further extended on this pioneering work with improvements in AI technology as described herein.
For example, the inventors disclose how AI technology can be used in combination with composable communication goal statements and an ontology to facilitate a user's ability to quickly structure story outlines in a manner usable by a narrative generation system without any need to directly author computer code.
Moreover, the inventors also disclose that the ontology used by the narrative generation system can be built concurrently with the user composing communication goal statements. Further still, expressions can be attached to objects within the ontology for use by the narrative generation process when expressing concepts from the ontology as text in a narrative story. As such, the ontology becomes a re-usable and shareable knowledge-base for a domain that can be used to generate a wide array of stories in the domain by a wide array of users/authors.
The inventors further disclose techniques for editing narrative stories whereby a user's editing of text in the narrative story that has been automatically generated can in turn automatically result in modifications to the ontology and/or a story outline from which the narrative story was generated. Through this feature, the ontology and/or story outline is able to learn from the user's edits and the user is alleviated from the burden of making further corresponding edits of the ontology and/or story outline.
The inventors further disclose how the narrative analytics that are linked to communication goal statements can employ a conditional outcome framework that allows the content and structure of resulting narratives to intelligently adapt as a function of the nature of the data under consideration.
Further still, the inventors also disclose how “analyze” communication goals can be supported by the system, including various examples of communication goal statements that drive the generation of narratives that express various ideas that are deemed relevant to a given analysis communication goal.
The inventors also disclose how the attribute structures within the ontology can include an explicit model for the subject attribute, regardless of whether that model is used to compute the value of the subject attribute itself. This explicit model can then be leveraged to support an investigation of drivers of the value for the subject attribute. Narrative analytics that perform such driver analysis can then be used to support narrative generation for communication goals relating to explanations, predictions, recommendations, and the like.
Furthermore, the inventors also disclose how “explain” communication goals can be supported by the system in combination with driver analysis supported by the explicit attribute models, including various examples of communication goal statements that drive the generation of narratives that express various ideas that are deemed relevant to a given explanation communication goal.
Through these and other features, example embodiments of the invention provide significant technical advances in the NLG arts by harnessing AI computing to improve how narrative stories are generated from data sets while alleviating users from a need to directly code and re-code the narrative generation system, thereby opening up use of the AI-based narrative generation system to a much wider base of users (e.g., including users who do not have specialized programming knowledge).
BRIEF DESCRIPTION OF THE DRAWINGS
FIGS.1A-B and2 depict various process flows for example embodiments.
FIG.3A depicts an example process flow for composing a communication goal statement.
FIG.3B depicts an example ontology.
FIG.3C depicts an example process flow for composing a communication goal statement while also building an ontology.
FIG.3D depict an example of how communication goal statements can relate to an ontology and program code for execution by a process as part of a narrative generation process.
FIG.4A depicts examples of base communication goal statements.
FIG.4B depicts examples of parameterized communication goal statements corresponding to the base communication goal statements ofFIG.4A.
FIG.5 depicts a narrative generation platform in accordance with an example embodiment.
FIGS.6A-D depict a high level view of an example embodiment of a platform in accordance with the design ofFIG.5.
FIG.7 depicts an example embodiment of an analysis component ofFIG.6C.
FIGS.8A-H depict example embodiments for use in an NLG component ofFIG.6D.
FIG.9 depicts an example process flow for parameterizing an attribute.
FIG.10 depicts an example process flow for parameterizing a characterization.
FIG.11 depicts an example process flow for parameterizing an entity type.
FIG.12 depicts an example process flow for parameterizing a timeframe.
FIG.13 depicts an example process flow for parameterizing a timeframe interval.
FIGS.14A-D illustrate an example of how a communication goal statement can include subgoals that drive the narrative generation process.
FIG.15A depicts an example conditional outcome data structure linked with one or more idea data structures.
FIG.15B depicts an example of narrative analytics that employ a conditional outcome framework to determine ideas to be expressed in a narrative.
FIG.16 depicts an example embodiment for a conditional outcome framework that can be used by the narrative analytics associated with a communication goal statement for “Analyze Entity Group by Attribute”.
FIGS.17A and17B depict examples of how ideas can be linked to and delinked from outcomes within a conditional outcome framework in response to user input.
FIGS.18A and18B depict examples of narratives that can be generated using the conditional outcome framework ofFIG.16.
FIGS.19A and19B depict an example embodiment for a conditional outcome framework that can be used by the narrative analytics associated with a communication goal statement for “Analyze Entity Group byAttribute 1 andAttribute 2” and examples of narrative stories that can be generated thereby.
FIG.20A depicts an example embodiment for a conditional outcome framework that can be used by the narrative analytics associated with a communication goal statement for “Analyze Entity Group by a Change in Attribute (Over Time)” and an example of a narrative story that can be generated thereby.
FIGS.20B-D depict another example embodiment for a conditional outcome framework that can be used by the narrative analytics associated with a communication goal statement for “Analyze Entity Group by a Change in Attribute (Over Time)” and examples of a narrative stories that can be generated thereby.
FIGS.21A and21B depict an example embodiment for a conditional outcome framework that can be used by the narrative analytics associated with a communication goal statement for “Analyze Entity Group by Characterization” and examples of narrative stories that can be generated thereby.
FIG.22A depicts an example structure for a smart attribute.
FIGS.22B and22C depict examples that show how smart attributes can have attribute models that are linked to other attributes and field within source data.
FIG.23 depicts an example process flow that shows how the smart attributes can be leveraged to support driver analysis.
FIGS.24A-E depict an example embodiment for a conditional outcome framework that can be used by the narrative analytics associated with a communication goal statement for “Explain a Value of an Attribute” as used to generate various narratives.
FIG.25A shows an example list of facts that can be learned about a data set by a narrative generation system using smart attributes in connection with a communication goal statement for “Explain a Change in Value of an Attribute”
FIGS.25B-D depict an example embodiment for a conditional outcome framework that can be used by the narrative analytics associated with a communication goal statement for “Explain a Change in Value of an Attribute” as used to generate various narratives.
FIGS.26A and26B depict an example embodiment for a recursive conditional outcome framework that can be recursively invoked by the narrative analytics associated with a communication goal statement for “Explain a Change in Value of an Attribute”.
FIGS.27-298 illustrate example user interfaces for using an example embodiment to support narrative generation through composable communication goal statements and ontologies.
DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS
The example embodiments described herein further extend and innovate on the pioneering work described in the above-referenced and incorporated patent application serial numbers U.S. Pat. Nos. 9,576,009, 9,697,197, 9,697,492, 9,720,890, and 9,977,773, where explicit representations of communication goals are used by AI technology to improve how NLG technology generates narratives from data. With example embodiments described herein, AI technology is able to process a communication goal statement in relation to a data set in order to automatically generate narrative text about that data set such that the narrative text satisfies a communication goal corresponding to the communication goal statement. Furthermore, innovative techniques are disclosed that allow users to compose such communication goal statements in a manner where the composed communication goal statements exhibit a structure that promotes re-usability and robust story generation.
FIG.1A depicts a process flow for an example embodiment. Atstep100, a processor selects and parameterizes a communication goal statement. The processor can perform this step in response to user input as discussed below with respect to example embodiments. The communication goal statement can be expressed as natural language text, preferably as an operator in combination with one or more parameters, as elaborated upon below.
Atstep102, a processor maps data within the data set to the parameters of the communication goal statement. The processor can also perform this step in response to user input as discussed below with respect to example embodiments.
Atstep104, a processor performs NLG on the parameterized communication goal statement and the mapped data. The end result ofstep104 is the generation of narrative text based on the data set, where the content and structure of the narrative text satisfies a communication goal corresponding to the parameterized communication goal statement.
WhileFIG.1A describes a process flow that operates on a communication goal statement, it should be understood that multiple communication goal statements can be composed and arranged to create sections of an outline for a story that is meant to satisfy multiple communication goals.FIG.1B depicts an example process flow for narrative generation based on multiple communication goal statements. Atstep110, multiple communication goal statements are selected and parameterized to create sections of a story outline. Atstep112, a processor maps data within a data set to these communication goal statements as with step102 (but for multiple communication goal statements). Step114 is likewise performed in a manner similar to that ofstep104 but on the multiple communication goal statements and the mapped data associated therewith. The end result ofstep114 is a narrative story about the data set that conveys information about the data set in a manner that satisfies the story outline and associated communication goals.
It should be understood thatsteps102 and104, as well assteps112 and114, need not be performed in lockstep order with each other where step102 (or112) maps all of the data before the system progresses to step104 (or step114). These steps can be performed in a more iterative manner if desired, where a portion of the data is mapped at step102 (or step112), followed by execution of step104 (or step114) on that mapped data, whereupon the system returns to step102/112 to map more data for subsequent execution ofstep104/114, and so on.
Furthermore, it should be understood that a system that executes the process flows ofFIGS.1A and/or1B may involve multiple levels of parameterization. For example, not only is there parameterization in the communication goals to build story outlines, but there can also be parameterization of the resulting story outline with the actual data used to generate a story, as explained hereinafter with respect to example embodiments.
FIG.2 depicts an example process flow that shows how a story outline can be composed as part ofstep110. The process flow ofFIG.2 can be performed by a processor in response to user input through a user interface. To begin the process, a name is provided for a section (step120). Within this section,step100 is performed to define a communication goal statement for the subject section. Atstep122, the section is updated to include this communication goal statement. The process flow then determines whether another communication goal statement is to be added to the subject section (step124). If so, the process flow returns tosteps100 and122. If not, the process flow proceeds to step126. Atstep126, the process flow determines whether another section is to be added to the story outline. If so, the process flow returns to step120. Otherwise, the process flow concludes and the story outline is completed. Thus, through execution of the process flow ofFIG.2, a processor can generate a story outline comprising a plurality of different sections, where each section comprises one or more communication goal statements. This story outline in turn defines the organization and structure of a narrative story generated from a data set and determines the processes required to generate such a story.
The previous example shows how an outline can be built by adding sections and parameterizing goals completely from scratch. The user is generally not expected to start from scratch, however. A narrative generation system instance will generally include a library of prebuilt components that users can utilize to more easily and quickly build out their outline. The narrative generation system's library provides access to previously parameterized and composed goals, subsections, sections, and even fully defined outlines. These re-usable components come fully parameterized, but can be updated or adjusted for the specific project. These changes are initially isolated from the shared library of components.
Components from the system's shared library can be used in two ways. First, a new project can be created from an entire project blueprint providing all aspects of a project already defined. This includes sample data, data views, the ontology, outline, sections, parameterized goals, and data mappings. Second, a user can pull in predefined components from the system's library ad hoc while building a new project. For example, when adding a section to an outline, the user can either start from scratch with an empty section or use a predefined section that includes a set of fully parameterized goals.
The system's library of components can be expanded by users of the platform through a mechanism that enables users to share components they have built. Once a component (outline, ontology, section, etc.) is shared, other users can then use them from the system's library in their own projects.
Composable Communication Goal Statements:
FIG.3A depicts an example process flow for composing a communication goal statement, where the process flow ofFIG.3A can be used to performstep100 ofFIGS.1A and2 (see also step110 ofFIG.1B). The process flow ofFIG.3A can be performed by a processor in response to user input through a user interface. The process flow begins atstep300 when the processor receives user input that indicates a base communication goal statement. The base communication goal statement serves as a skeleton for a parameterized and composed communication goal and may comprise one or more base goal elements that serve to comprise the parameterized and composed communication goal statement. Base goal elements are the smallest composable building blocks of the system out of which fully parameterized communication goal statements are constructed. Internal to the system, they are structured objects carrying necessary information to serve as the placeholders for parameters that are to be determined during the composition process. Communication goal statements are displayed to the user in plain language describing the goal's operation and bound parameters. In an example embodiment, the base communication goal statement is represented to a user as an operator and one or more words, both expressed in natural language, and where operator serves to identify a communication goal associated with the base communication goal statement and where the one or more words stand for the base goal elements that constitute parameters of the parameterized communication goal statement.FIG.4A depicts examples of base communication goal statements as presented to a user that can be supported by an example embodiment.
As shown byFIG.4A, basecommunication goal statement402 is “Present the Value” where the word “Present” serves as theoperator410 and “Value” serves as theparameter placeholder412. Theoperator410 can be associated with a set of narrative analytics (discussed below) that define how the AI will analyze a data set to determine the content that is to be addressed by a narrative story that satisfies the “Present the Value” communication goal. Theparameter placeholder412 is a field through which a user specifies an attribute of an entity type to thereby define a parameter to be used as part of the communication goal statement and subsequent story generation process. As explained below, the process of parameterizing the parameter placeholders in the base communication goal statements can build and/or leverage an ontology that represents a knowledge base for the domain of the story generation process.
As shown byFIG.4B, another example of a base communication goal statement is basecommunication goal statement404, which is expressed as “Present the Characterization”, but could also be expressed as “Characterize the Entity”. In these examples, “Present” (or “Characterize”) can serve asoperator414 can “Characterization” (or Entity”) can serve as aparameter placeholder416. This base communication goal statement can be used to formulate a communication goal statement geared toward analyzing a data set in order to express an editorial judgment about data within the data set.
As shown byFIG.4B, another example of a base communication goal statement is basecommunication goal statement406, which is expressed as “Compare the Value to the Other Value”, where “Compare” serves asoperator418, “Value” serves as aparameter placeholder420, and “Other Value” serves asparameter placeholder422. The “Compare”operator418 can be associated with a set of narrative analytics that are configured to compute various metrics indicative of a comparison between the values corresponding to specified attributes of specified entities to support the generation of a narrative that expresses how the two values compare with each other.
Another example of a base communication goal statement is “Callout the Entity”408 as shown byFIG.4A. In this example, “Callout” isoperator424 and “Entity” is theparameter placeholder426. The “Callout”operator424 can be associated with a set of narrative analytics that are configured to compute various metrics by which to identify one or more entities that meet a set of conditions to support the generation of a narrative that identifies such an entity or entities in the context of these conditions.
It should be understood that the base communication goal statements shown byFIG.4A are just examples, and a practitioner may choose to employ more, fewer, or different base communication goal statements in a narrative generation system. For example, additional base communication goal statements could be employed that include operators such as “Review”, “Analyze”, “Explain”, “Predict” etc. to support communication goal statements associated with communication goals targeted toward such operators. An example structure for a base “Review” communication goal statement could be “Review the [timeframe interval] [attribute] of [the entity] over [timeframe]”. An example structure for a base “Explain” communication goal statement could be “Explain the [computed attribute] of [the entity] in [a timeframe]”. Also, example embodiments describing how communication goal statements with an “Analyze” operator can be used to support the generation of narratives that satisfy an “analysis” communication goal are discussed below.
The system can store data representative of a set of available base communication goal statements in a memory for use as a library. A user can then select from among this set of base communication goal statements in any of a number of ways. For example, the set of available base communication goal statements can be presented as a menu (e.g., a drop down menu) from which the user makes a selection. As another example, a user can be permitted to enter text in a text entry box. Software can detect the words being entered by the user and attempt to match those words with one of the base communication goal statements as would be done with auto-suggestion text editing programs. Thus, as a user begins typing the character string “Compa . . . ”, the software can match this text entry with the base communication goal statement of “Compare the Value to the Other Value” and select this base communication goal statement atstep300.
Returning toFIG.3A, the process flow at steps302306 operates to parameterize the base communication goal statement by specifying parameters to be used in place of the parameter placeholders in the base communication goal statement. One of the technical innovations disclosed by the inventors is the use of anontology320 to aid this part of composing the communication goal statement. Theontology320 is a data structure that identifies the types of entities that exist within the knowledge domain used by the narrative generation system to generate narrative stories in coordination with communication goal statements. The ontology also identifies additional characteristics relating to the entity types such as various attributes of the different entity types, relationships between entity types, and the like.
Step302 allows a user to use the existing ontology to support parameterization of a base communication goal statement. For example, if theontology320 includes an entity type of “Salesperson” that has an attribute of “Sales”, a user who is parameterizing basecommunication goal statement402 can cause the processor to access the existingontology320 at step304 to select “Sales of the Salesperson” from theontology320 atstep306 to thereby specify the parameter to be used in place ofparameter placeholder412 and thereby create a communication goal statement of “Present the Sales of the Salesperson”.
Also, if theexisting ontology320 does not include the parameters desired by a user,step306 can operate by a user providing user input that defines the parameter(s) to be used for parameterizing the communication goal statement. In this situation, the processor in turn builds/updates theontology320 to add the parameter(s) provided by the user. For example, if theontology320 did not already include “Sales” as an attribute of the entity type “Salesperson”, steps306-308 can operate to add a Sales attribute to the Salesperson entity type, thereby adapting theontology320 at the same time that the user is composing the communication goal statement. This is a powerful innovation in the art that provides significant improvement with respect to how artificial intelligence can learn and adapt to the knowledge base desired by the user for use by the narrative generation system.
Atstep310, the processor checks whether the communication goal statement has been completed. If so, the process flow ends, and the user has composed a complete communication goal statement. However, if other parameters still need to be specified, the process flow can return to step302. For example, to compose a communication goal statement from the basecommunication goal statement406 of “Compare the Value to the Other Value”, two passes through steps302-308 may be needed for the user to specify the parameters for use as the Value and the Other Value.
FIG.4B shows examples of parameterized communication goal statements that can be created as a result of theFIG.3A process flow. For example, the basecommunication goal statement402 ofFIG.4A can be parameterized as communication goal statement402 (“Present the Price of the Car”, where theparameter placeholder412 has been parameterized asparameter412b, namely “Price of the Car” in this instance, with “Price” being the specified attribute of a “Car” entity type). Similarly, the basecommunication goal statement402 ofFIG.4A could also be parameterized as “Present the Average Value of the Deals of the Salesperson”, where theparameter placeholder412 has been parameterized asparameter412b, namely “Average Value of the Deals of the Salesperson” in this instance).
FIG.4B also shows examples of how basecommunication goal statement404 can be parameterized (see relatively lengthy “Present the Characterization of the Highest Ranking Department in the City by Expenses in terms of the Difference Between its Budget and Expenses”statement404b1 where the specifiedparameter404b1 is the “Characterization of the Highest Ranking Department in the City by Expenses in terms of the Difference Between its Budget and Expenses”; see also its substantially equivalent in the form ofstatement404b2). Also shown byFIG.4B are examples of parameterization of basecommunication goal statement406. A first example is thecommunication goal statement406bof “Compare the Sales of the Salesperson to the Benchmark of the Salesperson” where the specified parameter for “Value”420 is “Sales of the Salesperson”420band the specified parameter for “Other Value”422 is “Benchmark of the Salesperson”422b. A second example is thecommunication goal statement406bof “Compare the Revenue of the Business to the Expenses of the Business” where the specified parameter for “Value”420 is “Revenue of the Business”420band the specified parameter for “Other Value”422 is “Expenses of the Business”422b.
Also shown byFIG.4B are examples of parameterization of basecommunication goal statement408. A first example is thecommunication goal statement408bof “Callout the Highest Ranked Salesperson by Sales” where the specified parameter for “Entity”426 is the “Highest Ranked Salesperson by Sales”426b. A second example is thecommunication goal statement408bof “Callout the Players on the Winning Team” where the specified parameter for “Entity”426 is “Players on the Winning Team”426b. A third example is thecommunication goal statement408bof “Callout the Franchises with More than $1000 in Daily Sales” where the specified parameter for “Entity”426 is “Franchises with More than $1000 in Daily Sales”426b.
As with the base communication goal statements, it should be understood that a practitioner may choose to employ more, fewer, or different parameterized communication goal statements in a narrative generation system. For example, a parameterized Review communication goal statement could be “Review the weekly cash balance of the company over the year”, and a parameterized Explain communication goal statement could be “Explain the profit of the store in the month”.
Ontology Data Structure:
FIG.3B depicts an example structure forontology320. Theontology320 may comprise one or more entity types322. Eachentity type322 is a data structure associated with an entity type and comprises data that describes the associated entity type. An example of anentity type322 would be a “salesperson” or a “city”. Eachentity type322 comprises metadata that describes the subject entity type such as a type324 (to identify whether the subject entity type is, e.g., a person, place or thing) and a name326 (e.g., “salesperson”, “city”, etc.). Eachentity type322 also comprises one or more attributes330. For example, an attribute330 of a “salesperson” might be the “sales” achieved by a salesperson. Additional attributes of a salesperson might be the salesperson's gender and sales territory.
Attributes330 can be represented by their own data structures within the ontology and can take the form of adirect attribute330aand a computedvalue attribute330b. Adirect attribute330ais an attribute of an entity type that can be found directly within a data set (e.g., for a data set that comprises a table of salespeople within a company where the salespeople are identified in rows and where the columns comprise data values for information such as the sales and sales territory for each salesperson, the attribute “sales” would be a direct attribute of the salesperson entity type because sales data values can be found directly within the data set). A computedvalue attribute330bis an attribute of an entity type that must be derived in some fashion from the data set. Continuing with the example above, a direct attribute for the salesperson entity type might be a percentage of the company's overall sales that were made by the salesperson. This information is not directly present in the data set but instead must be computed from data within the data set (e.g., by summing the sales for all salespeople in the table and computing the percentage of the overall sales made by an individual salesperson).
Both thedirect attributes330aand computed value attributes330bcan be associated with metadata such as a type340 (e.g., currency, date, decimal, integer, percentage, string, etc.), and aname342. However, computed value attributes330bcan also include metadata that specifies how the computed value attribute is computed (a computation specification348). For example, if a computedvalue attribute330bis an average value, the computation specification348 can be a specification of the formula and parameters needed to compute this average value.
Eachentity type322 may also comprise one ormore characterizations332. For example, acharacterization332 of a “salesperson” might be a characterization of how well the salesperson has performed in terms of sales (e.g., a good performer, an average performer, a poor performer). Characterizations can be represented by theirown data structures332 within the ontology. Acharacterization332 can include metadata such as a name360 (e.g., sales performance). Also, eachcharacterization332 can include a specification of the qualifications364 corresponding to the characterization. These qualifications364 can specify one or more of the following: (1) one or more attributes330 by which the characterization will be determined, (2) one or more operators366 by which the characterization will be determined, and (3) one or more value(s)368 by which the characterization will be determined. For example, a “good performer” characterization for a salesperson can be associated with a qualification that requires the sales for the salesperson to exceed a defined threshold. With such an example, the qualifications364 can take the form of a specified attribute330 of “sales”, an operator366 of “greater than”, and a value368 that equals the defined threshold (e.g., $100,000).
Eachentity type322 may also comprise one ormore relationships334.Relationships334 are a way of identifying that a relationship exists between different entity types and defining how those different entity types relate to each other. Relationships can be represented by theirown data structures334 within the ontology. Arelationship334 can include metadata such as therelated entity type350 with respect to thesubject entity type322. For example, a “salesperson” entity type can have a relationship with a “company” entity type to reflect that the salesperson entity type belongs to a company entity type. The ontological objects (e.g., entity types322,direct attributes330a, computed value attributes330b,characterizations332, and relationships334) may also comprise data that represents one or more expressions that can be used to control how the corresponding ontological objects are described in narrative text produced by the narrative generation system.
For example, theentity type322 can be tied to one or more expressions328. When the narrative generation process determines that the subject entity type needs to be described in narrative text, the system can access the expression(s)328 associated with the subject entity type to determine how that entity type will be expressed in the narrative text. The expression(s)328 can be a generic expression for the entity type322 (e.g., the name326 for the entity type, such as the name “salesperson” for a salesperson entity type), but it should be understood that the expression(s)32 may also or alternatively include alternate generic names (e.g., “sales associate”) and specific expressions. By way of example, a specific expression for the salesperson entity type might be the name of a salesperson. Thus, a narrative text that describes how well a specific salesperson performed can identify the salesperson by his or her name rather than the more general “salesperson”. To accomplish this, the expression328 for the salesperson can be specified indirectly via a reference to a data field in a data set (e.g., if the data set comprises a table that lists sales data for various sales people, the expression328 can identify a column in the table that identifies each salesperson's name). The expression(s)328 can also define how the subject entity type will be expressed when referring to the subject entity type as a singular noun, as a plural noun, and as a pronoun.
The expression(s)346 for thedirect attributes330aand computed value attributes330bcan take a similar form as and operate in a manner similar to the expression(s) for the entity types322; likewise for the expression(s)362 tied to characterizations332 (although it is expected that the expressions362 will often include adjectives and/or adverbs in order to better express thecharacterization332 corresponding to the subject entity type322). The expression(s)352 forrelationships334 can describe the nature of the relationship between the related entity types so that this relationship can be accurately expressed in narrative text if necessary. Theexpressions352 can typically take forms such as “within” (e.g., a “city” entity type within a “state” entity type, “belongs to” (e.g., a “house” entity type that belongs to a “person” entity type, “is employed by” (a “salesperson” entity type who is employed by a “company” entity type), etc.
Another ontological object can be atimeframe344. In the example ofFIG.3B,timeframes344 can be tied todirect attributes330aand/or computed value attributes330b. Adirect attribute330aand/or a computedvalue attribute330bcan either be time-independent or time-dependent. Atimeframe344 can define the time-dependent nature of a time-dependent attribute. An example of a time-dependent attribute would be sales by a salesperson with respect to a data set that identifies each salesperson's sales during each month of the year. Thetimeframe344 may comprise a timeframe type356 (e.g., year, month, quarter, hour, etc.) and one or more expressions(s)358 that control how the subject timeframe would be described in resultant narrative text. Thus, via thetimeframe344, a user can specify a timeframe parameter in a communication goal statement that can be used, in combination with theontology320, to define a specific subset of data within a data set for consideration. While the example ofFIG.3B showstimeframes344 being tied todirect attributes330aand computed value attributes330b, it should be understood that a practitioner might choose to maketimeframes344 only attachable to directattributes330a. Also, a practitioner might choose to maketimeframes344 also applicable to other ontological objects, such ascharacterizations332, entity types322, and/or evenrelationships334. As indicated in connection withFIG.3A, users can create and update theontology320 while composing communication goal statements. An example embodiment for such an ability to simultaneously compose communication goal statements and build/update an ontology is shown byFIG.3C. At step370, the system receives a text string entry from a user (e.g., through a text entry box in a user interface (UI)). As indicated, this text entry can be a natural language text entry to facilitate ease of use by users. Alternative user interface models such as drag and drop graphical user interfaces or structured fill in the blank templates could also be used for this purpose.
Atstep372, the processor attempts to match the received text string to a base communication goal statement that is a member of a base communication goal statement library504 (seeFIG.4A). This matching process can be a character-based matching process where the processor seeks to find a match on an ongoing basis as the user types the text string. Thus, as a user types the string “Comp”, the processor may be able to match the text entry to the “Compare the Value to the Other Value” base communication goal statement. Based on this matching, the system can auto-fill or auto-suggest a base communication goal statement that matches up with the received text entry (step374). At this point, the system can use the base communication goal statement as a framework for guiding the user to complete the parameterization of the communication goal statement.
Atstep376, the system continues to receive text string entry from the user. Atstep378, the processor attempts to match the text string entry to an object inontology320. Is there is a match (or multiple matches), the system can present a list of matching ontological objects for user selection (step380). In this fashion, the system can guide the user to define parameters for the communication goal statement in terms of objects known withinontology320. However, if the text string does not match any ontological objects, the system can provide the user with an ability to create a new object for inclusion in the ontology (steps382-384). At step382, the system provides the user with one or more UIs through which the user creates object(s) for inclusion in ontology320 (e.g., defining an entity type, attribute, characterization, relationship, and/or timeframe). At step384, the system receives the user input through the UI(s) that define the ontological objects. The ontology can thus be updated atstep308 in view of the text string entered by a user that defines a parameter for the communication goal statement.
Ifstep310 results in a determination that the communication goal statement has not been completed, the process flow returns to step376 as the user continues entering text. Otherwise, the process flow concludes afterstep310 if the communication goal statement has been fully parameterized (seeFIG.4B for examples of parameterized communication goal statements).
Through the use of composable communication goal statements andontology320, example embodiments are capable of generating a robust array of narrative stories about data sets that satisfy flexibly-defined communication goals without requiring a user to directly author any program code. That is, a user need not have any knowledge of programming languages and does not need to write any executable code (such as source code) in order to control how the narrative generation platform automatically generates narrative stories about data sets. To the extent that any program code is manipulated as a result of the user's actions, such manipulation is done indirectly as a result of the user's higher level compositions and selections through a front end presentation layer that are distinct from authoring or directly editing program code. Communication goal statements can be composed via an interface that presents them in natural language as disclosed herein, and ontologies can similarly be created using intuitive user interfaces that do not require direct code writing.FIG.3D illustrates this aspect of the innovative design. In an example embodiment, communication goal statements390 (e.g.,3901 and3902) are composed by a user using an interface that presents the base goal elements as natural language text where one or more words represent the goal operators and one or more words serve to represent the parameters as discussed above. These parameters, in turn, map intoontology320 and thus provide the constraints necessary for the narrative generation platform to appropriately determine how to analyze a data set and generate the desired narrative text about the data set (described in greater detail below). Hidden from the user are code-level details. For example, a computed value attribute (such as330bn) is associated with parameterizedcomputational logic394 that will be executed to compute its corresponding computed value attribute. Thus, if the computedvalue attribute330bnis an average value of a set of data values, thecomputational logic394 can be configured to (1) receive a specification of the data values as input parameters, (2) apply these data values to a programmed formula that computes an average value, and (3) return the computed average value as the average value attribute for use by the narrative generation platform. As another example,computational logic392 and396 can be configured to test qualifications for correspondingcharacterizations3321and3322respectively. The data needed to test the defined qualifications can be passed into the computational logic as input parameters, and the computational logic can perform the defined qualification tests and return an identification of the determined characterization for use by the narrative generation platform. Similar computational logic structures can leverage parameterization and theontology320 to perform other computations that are needed by the narrative generation platform. The inventors also disclose that theontology320 can be re-used and shared to generate narrative stories for a wide array of users. For example, anontology320 can be built that supports generation of narrative stories about the performance of retail businesses. This ontology can be re-used and shared with multiple users (e.g., users who may have a need to generate performance reports for different retail businesses). Accordingly, asontologies320 are created for different domains, the inventors envision that technical value exists in maintaining a library ofontologies320 that can be selectively used, re-used, and shared by multiple parties across several domains to support robust narrative story generation in accordance with user-defined communication goals.
Example Narrative Generation Architecture Using Composed Communication Goal Statements:
FIG.5 depicts a narrative generation platform in accordance with an example embodiment. An example embodiment of the narrative generation platform can include two artificial intelligence (AI) components. Afirst AI component502 can be configured to determine the content that should be expressed in a narrative story based on a communication goal statement (which can be referred to as “what to say” AI502). Asecond AI component504 can be configured to perform natural language generation (NLG) on the output of thefirst AI component502 to produce the narrative story that satisfies the communication goal statement (where theAI component504 can be referred to as “how to say it” AI504).
The platform can also include a frontend presentation layer570 through whichuser inputs572 are received to define the composedcommunication goal statement390. Thispresentation layer570 can be configured to allow user composition of thecommunication goal statement390 using natural language inputs. As mentioned herein, it can also employ structured menus and/or drag/drop features for selecting elements of a communication goal statement. Examples of various user interfaces that can be used by thepresentation layer570 are shown in Appendix A. As can be seen from these sample UIs, thepresentation layer570 can also leverage theontology320 andsource data540 to facilitate its user interactions.
The “what to say”AI502 can be comprised of computer-executable code resident on a non-transitory computer-readable storage medium such as computer memory. The computer memory may be distributed across multiple memory devices. One or more processors execute the computer code in cooperation with the computer memory.AI502 operates on a composedcommunication goal statement390 andontology320 to generate acomputed story outline528.
AI502 includes a communicationgoal statement interpreter506, which is configured to process and interpret thecommunication goal statement390 to select a set of narrative analytics that are to be used to analyze a data set about which the narrative story will be generated. The computer memory may include alibrary508 of narrative analytics510 (e.g.,5101,5102,5103, . . . ). Thenarrative analytics510 may take the form of parameterized computer code that performs analytical operations on the data set in order to facilitate a determination as to what content should be included in the narrative story so that the communication goal(s) corresponding to thecommunication goal statement390 are satisfied. Examples ofnarrative analytics510 can be thecomputational logic392,394, and396 shown inFIG.3D.
AI502 can maintain a mapping that associates the various operators that may be present in communication goal statements (e.g., “Present”, “Compare”, etc.) to a sequence or set of narrative analytics that are to be performed on data in order to support the data analysis needed by the platform to generate narrative stories that satisfy thecommunication goal statement390. Thus, the “Compare” operator can be associated with a set of narrative analytics that do simple difference (a−b), absolute difference (abs(a−b)), or percent difference ((b−a)/b). In an example embodiment, the mapping can also be based on the parameters that are included in thecommunication goal statement390. The mapping can take the form of a data structure (such as a table) that associates operators (and possibly also parameters) with sets ofnarrative analytics510 fromlibrary508.Interpreter506 can then read and interpret thecommunication goal statement390 to identify the operator included in the communication goal statement, access the mapping data structure to map the identified operator to its corresponding set ofnarrative analytics510, and select the mapped narrative analytics. These selectednarrative analytics512 in turn drive downstream operations inAI502.
AI502 can also includecomputer code516 that is configured to determine the data requirements that are needed by system to generate a narrative story in view of the selectednarrative analytics512 and the parameters that are included in thecommunication goal statement390. Thiscode516 can walk through the selectednarrative analytics512, thecommunication goal statement390, andontology320 to identify any parameters and data values that are needed during execution of the selectednarrative analytics512. For example, thecommunication goal statement390 may include parameters that recite a characterization of an entity.Computer code390 can identify this characterization in the communication goal statement and access theontology320 to identify the data needed to evaluate the characterization of the subject entity such as the attribute(s)330 and value(s)368 needed for thesubject characterization332 inontology320. Theontology320 can then be further parsed to determine the data requirements for the subject attribute(s) needed by thesubject characterization332, and so on until all data requirements for thecommunication goal statement390 and selectednarrative analytics512 are determined. This ultimately yields a set ofdata requirements518 that define the data needed byAI502 in order to support the data analysis used to determine the content to be expressed in the narrative story. In situations where the input toAI502 comprises multiplecommunication goal statements390 in a story outline,code516 can be configured to walk through the outline to assemble a list of the data requirements for all of the communication goal statements in the outline.
Once thedata requirements518 have been determined, theAI502 can executecomputer code522 that maps thosedata requirements522 to sourcedata540. (This can be done either in a “batch” model wherein all the data requirements are determined first, and the code to map those to source data is executed; or it can be done individually for each data requirement either as needed or as the other information necessary to make the determination becomes available.) Thesource data540 serves as the data set from which the narrative story will be generated.Source data540 can take the form of data in a database, data in spreadsheet files, or other structured data accessible toAI502.Computer code522 can use a data structure520 (such as a table) that associates parameters from the data requirements to parameters in the source data to perform this mapping. For example, consider a scenario where the communication goal statement is “Present the Sales of the Salesperson”. Thedata requirements518 for this communication goal statement may include a parameter that corresponds to the “sales” attribute of a salesperson. Thesource data540 may include a data table where a column labeled as “Amount Sold ($)” identifies the sales amount for each salesperson in a company. The parametermapping data structure520 can associate the “Sales” parameter from thedata requirements518 to the “Amount Sold ($)” column in thesource data540 so thatAI502 accesses the proper data. This parametermapping data structure520 can be defined by an author when setting up the system, as discussed hereinafter. The output ofcomputer code522 can be a set of mappedsource data524 for use by the selectednarrative analytics512.
Computer code522 can also map data requirements to source data using story variable(s)542. For example, thecommunication goal statement390 might be “Compare the Sales of Salesperson “John Smith” to the Benchmark of the Salesperson”. The mappedsource data524 can identify where in the source data the sales and benchmark for salespeople can be found. If thesource data540 includes sales data for multiple salespeople (e.g., rows in a data table correspond to different sales people while columns in the data table correspond to sales amounts and benchmarks for salespeople), the selection of a particular salesperson can be left as a story variable542 such that the parametermapping data structure520 does not identify which specific row to use as the salesperson and instead identifies the salesperson data requirement as a story variable. When a user composes the communication goal statement such that “John Smith” is expressed in the statement where the salesperson parameter is located, thecomputer code522 can use “John Smith” in thecommunication goal statement390 as the story variable542 that governs the selection of which row ofsource data540 should be used. Similarly, the benchmark parameter might be expressed as a story variable542. For example, thesource data540 may not include a benchmark field, but the composed communication goal statement might express a number to be used as the benchmark. In such a situation, this number could be a story variable542 used by the system.
FIGS.46 and225-237, described below with reference to Appendix A, depict example GUIs through which a user can map the determined data requirements for a story outline to source data and story variables. These GUIs can be configured to list each data requirement in association with a user input mechanism through which the user can identify where in the source data a data requirement can be found (and whether a data requirement is to be parameterized as a story variable). As explained in Appendix A with respect to an example embodiment, the source data can take a number of forms, such as tabular data and document-based data, and the data requirements GUIs can be configured to accommodate both types.FIGS.238-255 and their supporting description in Appendix A further describe how source data can be managed in an example embodiment of the system.
AI502 can also includecomputer code526 that executes the selectednarrative analytics512 using the mapped source data524 (and potentially any story variable(s)542) to produce acomputed story outline528. Thenarrative analytics512 specifies at least four components: the input parameters (e.g., an entity to be ranked, a metric it is to be ranked by, and a group in which it is to be ranked); the code that will execute the narrative analytics (i.e., that will determine the rank of the entity in the group according to the metric); the output parameters (i.e., the rank of the entity); and a statement form containing the appropriate input and output parameters that will form the appropriate statement for inclusion in the computed outline (in this case, rank (entity, metric, group, rankvalue)). Thecommunication goal statement390 can be associated with a general story outline that provides the basic structure for the narrative story to be generated. However, this general story outline will not be populated with any specific data—only general identifications of parameters. Through execution of the selected narrative analytics bycomputer code526, this general story outline can be populated with specific data in the form of the computedstory outline528. For example, continuing with an example from above where thecommunication goal statement390 is “Compare the Sales of Salesperson “John Smith” to the Benchmark of the Salesperson”, the selected narrative analytics may include parameterized code that computes data indicative of the difference between John Smith's sales amount and the benchmark in both absolute terms (e.g., performing a subtraction between the sales amount and the benchmark) and as a percentage (e.g., dividing the subtracted difference by the benchmark and multiplying by 100).Code526 executes these narrative analytics to compute data values for use in the story outline. These data values are then embedded as values for the parameters in the appropriate statement forms associated with the narrative analytics to produce statements for inclusion in the computed outline. The statement will be included in the computed outline as a new element of the section containing the communication goal for which it was computed, under the node representing that communication goal.Code526 will progress through the execution of the selected narrative analytics using mappedsource data524 and story variable(s)542 (if any) until all elements of the story outline have been populated with statements. Also associated with communication goals are characterizations that serve to express a characterization or editorialization of the facts reported in the statements in a manner that may have more narrative impact that just a reporting of the facts themselves. For example, rather than saying that an entity is ranked first, we might say that it is the best. (In another approach, these might be associated with sections rather than communication goals.) The characterizations associated with each communication goal are assessed with respect to the statements generated by the narrative analytics in response to that goal. This results in generating additional propositions or statements corresponding to those characterizations for inclusion in the computed outline in those cases when the conditions for those characterizations are met by the input statements. The characterizations are also linked to the statements which they characterize. The result of this process is a computedstory outline528 that serves to identify the content that is to be expressed in the narrative story.
The “how to say it”AI504 can be comprised of computer-executable code resident on a non-transitory computer-readable storage medium such as computer memory. The computer memory may be distributed across multiple memory devices. One or more processors execute the computer code in cooperation with the computer memory.AI504 employsNLG logic530 to generate anarrative story550 from the computedstory outline528 andontology320. As indicated above, objects inontology320 can be associated with expressions (e.g.,expressions328,346,352,358, and362) that can be used byNLG530 to facilitate decision-making regarding the appropriate manner of expressing the content in the computedstory outline528. Thus,NLG530 can access theontology320 when forming sentences from the computedstory outline528 for use in thenarrative story550. Example embodiments ofNLG530 are discussed below with reference toFIGS.6D and8A-H.
Once again, by leveraging predefined sets of parameterizednarrative analytics510,AI502 is able to shield the low level program coding from users so that a user need only focus on composingcommunication goal statements390 in a natural language in order to determine the content that is to be included in a narrative story. Further still,AI504 also operates transparently to users so that anarrative story550 can be generated from a composedcommunication goal statement390 without requiring the user to directly write or edit program code.
Example Platform Operation:
FIG.6A depicts a high level view of an example embodiment of a platform in accordance with the design ofFIG.5. The narrative generation can proceed through three basic stages: setup (an example of which is shown byFIG.6B), analysis (an example of which is shown byFIG.6C), and NLG (an example of which is shown byFIG.6D). The operation of theFIG.6A embodiment can be described in the context of a simple example where the project has an outline with a single section and a single communication goal statement in that section. The communication goal statement can be “Present the sales of the salesperson”. In this example, “salesperson” is an entity type in the ontology and it has an attribute of “sales”. Also, the project has a single data view backed by a static file that contains the names and sales data for the salespeople.
During setup, the system loads the story configuration from a configuration store. The configuration store is a database where configurations are maintained in persistent form, managed, and versioned. The configuration for a story includes items representing the outline (sections, communication goals, and their components), the ontology (entity types, relationships, timeframe types), and data connectors (sources, data mappings). Once the configuration for the story is loaded into memory, the story outline is constructed, as shown inFIG.6B. The story outline is a hierarchical organization of sections and communication goals (seeFIG.2). At this time, along with constructing the story outline, the connectors to the data sources are initialized. These will be used as needed during the story generation process to access the necessary data required by the narrative analytics specified in the outline. Specifically how this is accomplished can depend on whether the data is passed in via an API, in a static file managed by the system, or via a connection to a database.
Once the setup phase is complete, the outline can be used to govern the generation of a story. This is accomplished by traversing the outline and executing the analytics associated with each communication goal statement; and the results serve to parameterize the associated statement forms of the communication goal in order to generate the facts of the story (seeFIG.6C). These facts are then organized into the computed outline as described above.
When this generation process is invoked by a client, e.g., via an API request, the client provides certain values for parameters of the configuration. In this instance, for example, the story is about the sales of some particular salesperson. So the client may need to provide a unique identifier for the specific salesperson which can be interpreted via the mapping provided between parameters of the story outline and the data source to be used.
As shown byFIG.7, the narrative analytics can access source/customer data through Entity and Entity Collection objects. These objects provide an interface based on theproject ontology320 and hide the source of the data from other components. These objects can use Entity Types, mappings from relevant Attributes of the Entity Types to data sources and specifiers (e.g., columns or column names in tables or databases, or keypaths in documents, etc.) as previously specified by the user during configuration, and data interfaces to access the actual relevant data. Some computations that comprise aspects of the narrative analytics, such as sorting and certain aggregations, can be handled by the data stores themselves (e.g., as database operations). The specific Entity objects provide methods to invoke these external operations, such as parameterizable database queries.
Continuing with the example, the single communication goal statement in this case, “Present the Sales of the Salesperson”, is made up of two base communication goal statements, composed together by embedding one inside the other. The top level statement is AttributeOfEntity (AttributeName, <Entity>), and its Entity parameter is satisfied by the embedded statement EntityById(Id). EntityById is resolved first. This is computed by retrieving the entity's ID as provided by the client when invoking the generation process, e.g., via an API request. EntityById creates an (internal) Entity object corresponding to the (external) ID and returns that Entity object as its result. This internal Entity object is a new Entity of the appropriate Entity Type as specified in the configuration and with appropriate attributes as determined by the entity data mapping, in this instance, since we are talking about a Salesperson, relevant attributes of the Salesperson in question such as his or her name, gender, sales, office—whatever in fact the configuration specifies be retrieved or computed. This result is in the form of the embedded communication goal statement, namely, EntityById(Id, <Entity>); it is then, in turn, passed into the top-level AttributeOfEntity statement along with the attribute name “sales”. The AttributeOfEntity analytic comprises code that takes the entity object and returns the corresponding value for that attribute of the entity as its result. The analytic looks up where to get the attribute data based on the entity data mappings provided during configuration, and retrieves the specific relevant attribute data from the client's data. The results for both of these are wrapped up in statement forms to produce statements as described above, and these statements are then added to the Computed Outline. In this specific case, as mentioned above, the statements are composed by one being embedded inside the other. The resulting compound statement added to the Computed Outline in this instance, fully parameterized, would look something as follows: AttributeOfEntity (‘Sales’, EntityByID(1234, Salesperson1234), 15000).
FIG.6D shows a high level view of NLG being performed on a computed outline in order to generate a narrative story.FIGS.8A-8H elaborate on this NLG process.
As shown byFIG.8A, the NLG process starts with the Computed Outline. Each phase of the NLG process walks through the Computed Outline and processes each computed statement form individually. Some stages look across multiple statements at once (such as Model Muting (seeFIG.8B) and Entity Referencing (seeFIG.8F), described below.
The first phase, Model Generation, converts the compound statements in the computed outline into NLGModel graphs, as shown byFIG.8A. Model graphs are similar to the compound statement structures, but are structured specifically for constructing sentences. For example, dependencies between nodes in the model graph will represent where dependent clauses should be placed on the sentence. An NLGModel provides a mechanism for generating sentences, phrases, and words needed to produce a story. There is model type for each concept that needs to be expressed from authoring mapping to each individual type of statement included in the computed outline. Examples include attributes, values, units, entities, relationships, rankings, filters, and comparisons. The models produced from the statements in the computed outline are organized into a graph based on how the ideas are related to each other. The shape of the graph provides a method for the NLG system to handle phrase muting, clause placement, anaphora, and connectives.
For example, the statement for ArributeOfEntity(‘Sales’, EntityByID(‘1234’, Salesperson1234), 15000) is converted into a model graph where the root is an EntityModel representing the Salesperson1234. The EntityModel has a dependent AttributeModel representing the Sales attribute since Sales is an attribute of that entity. The attribute Sales has a value of 15000 so a ValueModel representing 15000 is added as a dependent to the AttributeModel. Finally, the ValueModel has a UnitModel representing the type of value. In this case it is ‘dollars’. This model graph now provides the structure needed for the NLG system to construct a sentence for this statement. This was a simple example. The more complicated the statement, the more complicated the model graph will be. The system can also combine multiple statements into a single big model graph assuming they are related somehow, for example each of them are about the same entity. This then allows the system to then express multiple sets of ideas in a single sentence. If the model graph is too big, i.e. there are too many ideas to express in one sentence, it is split up into reasonably sized subgraphs that make up individual sentences.
After a model graph has been generated for each node, adjacent nodes are compared with each other to mute redundant facts. This can be referred to as Model Muting, as shown byFIG.8B. Model Muting reduces redundant information from being expressed across sentences. Since the working example has only a single goal, there is only one node involved, and there will be nothing to mute in this phase with respect to the example. Say though, the goal also had a timeframe associated with it so instead it was “Present the sales in the month of the Sales Person” and an adjacent goal was “Present the sales in the month of the top ranking Sales Person by sales”. Without muting these goals would express as, “In August of 1993, Joe had sales of $15000. In August of 1993, Bob, the best seller, had sales of $430000”. The timeframe “In August of 1993” is redundant between these two sentences and will be dropped in the second sentence resulting in language of “In August of 1993, Joe had sales of $15000. Bob, the best seller, had sales of $430000”.
Next, sentences are generated based on each model graph during Sentence Generation as shown byFIG.8C. The base of the sentence is generated first. It is the core subject/verb/object constituents of a sentence. Initially this will not have expressed all of the models in the graph (those will be added later as clauses). Not all models in the graph can generate base sentences, but multiple models can add to the set of possible sentences for a node. Sentences almost always come from preferences set by the user in theontology320 through things like attribute expressions, rank expressions, and/or relationship expressions. The sentences generated in this phase will be built upon, and later one of these sentences will be picked to be used in the narrative story.
Continuing with the working example, only the Attribute model can generate sentences for this model graph. It will generate them based on the attribute expressions configured by the user for “sales”. Let's suppose the user configured three options: “the salesperson had sales of $100”, “the salesperson sells $100”, and “the salesperson's sales are $100”. The Attribute model would generate three sentences, one for each of these options.
After the base sentences have been generated, the models not expressed in that base sentence must then be expressed as clauses on the sentence. This can be referred to as Clause Placement (seeFIG.8D). Depending on where the unexpressed models are in the model graph, they will be placed as phrases on the sentence attached to the noun representing the model in the graph they are dependents of. This is done for each sentence from the list of sentences produced by the sentence generation phase. Clauses are generated similarly to how sentences were generated in the previous phase based on the user's expression preferences within the ontology.
In our example, there are no extra models that need to be added as clauses. However, to illustrate how the clause placement phase would work, let's say that the goal was actually “Present the sales of the salesperson working in the city.” A sentence from the Relationship model would be “Sally sells in Chicago.” This leaves the Attribute/Value/Unit models still needing to be expressed. The Attribute model can produce clauses for these. Based on the attribute expression configuration, it would generate clauses of “who has sales of $1000” or “who has sold $1000”. These would be added as a relative clause to “Sally” giving a complete sentence of “Sally, who has sales of $1000, sells in Chicago” (as one of the sentences among the several available permutations).
The next phase is Sentence Selection (seeFIG.8E). At this point, complete sentences have been built, and the system needs to pick one for use in the narrative story. The Sentence Selection phase can take into consideration several factors when selecting sentences. For example, the selected sentence should (1) correctly convey the intent of the goal, (2) only express what is necessary, and (3) prefer patterns that generally sound better. With these criteria, the system will likely be still left with more than one valid sentence. At this point, the system can choose from the remaining sentences that provide the best variability of expression. In an example embodiment, with all factors being equal, the system can randomly select a sentence from among the qualifying sentences. In our example, based on the goal, all three sentences are equally valid, so the system will randomly choose one to include in the final story. At the conclusion of the Sentence Selection phase, a sentence will have been selected for each node in the outline.
At this point, the system seeks to improve fluidity by looking across the nodes in the outline. At this stage, referred to as Entity Referencing (seeFIG.8F), nodes in the same section that repeat entities will be replaced with pronouns. The pronoun used will depend on the type of entity being replaced. If the base entity type is a Person and gender is available, the system will use gendered pronouns (e.g., he/she), otherwise it will use a non-gendered pronoun (e.g., they).
In our example, since there is only a single goal there would be no pronoun replacement. If instead there were two adjacent goals in the same section (e.g., “Present the sales of the salesperson” and “Present the title of the salesperson”, a pronoun would be used for the second sentence, resulting in the language “Sally had sales of $10000. She had the title VP of Sales.”
At this point, the sentences have been finalized. The next thing to do is ensure that the sentences are grammatically correct. This phase can be referred to as Realization (seeFIG.8G). To perform realization, the system adds articles (definite—“the”—and indefinite—“a/an”), conjugates verbs, and adds punctuation. After realization, the system has the final language for use in the story.
Wrapping up the example, the realized sentence ends up being “Sally has sales of $10,000.” To get to that, the verb “has” was conjugated into present tense because the lack of a timeframe. The system can be configured to assume the timeframe is “now” in cases where no timeframe is specified in the communication goal statement. Also, the Realization phase inspects “sales” and determines that it was plural so an indefinite article was not needed. Finally, “Sally” is determined to be a name proper noun, which accordingly means that a definite article is not needed before “Sally”.
As a last step, which can be referred to as Document Generation (seeFIG.8H), the system puts the realized language into a formatted document. Examples of suitable formats can include HTML, Microsoft Word documents, and JSON. The system returns the formatted document to the client.
Ontology Building:
FIGS.9-13 depict example process flows that show how theontology320 can be built in response to user input, including user input during the process of composing communication goal statements. Appendix A included herewith is a user guide for an example narrative generation platform, where the user guide shows examples of GUI screens that demonstrate how theontology320 can be built in response to user input.
FIG.9 depicts an example process flow for parameterizing a value in a communication goal statement, which relates to the attribute objects in theontology320. It should be understood that the order of many of the steps in this process flow could be changed if desired by a practitioner. Atstep900, the processor determines in response to user input whether a new attribute should be created for the value to be parameterized or whether an existing attribute should be used. Appendix A depicts example GUI screens that can assist the user as part of this process (see, e.g.,FIG.164 et seq.). If an existing attribute is to be used, the system can access theontology320 to provide the user with a list of attributes available for selection by the user. The user can select an existing attribute from this list (step918). The system can also use string matching technology to match any characters entered by a user through the GUI to existing attributes in theontology320. Upon detecting a match or partial match, the system can then suggest an existing attribute for selection.
If a new attribute is to be created for the value, the process flow proceeds to step902. Atstep902, the process flow makes a decision as to whether the new attribute should be a direct attribute or a computed value attribute.
If a direct attribute is to be created, the process flow proceeds to step904. Atstep904, the processor defines a label for the attribute in response to user input. This label can serve as the name for the attribute (e.g., “sales”—seeFIG.59). Next, atstep906, the processor defines a base type for the attribute in response to use input. Examples of base types for attributes can include currency, date, decimal, integer, percentage, and string.FIG.60 shows an example GUI screen through which a user can set the type for the subject attribute.
Next, atstep908, the processor defines the expression(s) that are to be associated with the subject attribute. Through specification of one or more expressions for the subject attribute, the user can provide the system with a number of options for expressing the attribute in words when rendering a narrative story.
At step910, the processor selects the entity type for the subject attribute in response to user input.FIGS.61-66 show example GUI screens for step910. Step910 is further elaborated upon with reference toFIG.11 discussed below.
Ifstep902 results in a determination that a computed value attribute is to be created, the process flow proceeds to step912 fromstep902. Atstep912, the system presents the user with a choice of making the computed value attribute a function or an aggregation (step912). If a function is selected atstep912, the process flow proceeds to step914 where the processor sets the computed value attribute according to the user-selected function. If an aggregation is selected atstep912, the process flow proceeds to step916 where the processor sets the computed value attribute according to the user-selected aggregation. Examples of available aggregations can include count, max, mean, median, min, range, and total. These aggregations can be associated with corresponding parameterized computational logic (seeFIG.3D) that is programmed to compute the desired aggregation. An example of an available function is a contribution function, which evaluates how much a component contributes to an aggregate. However, it should be understood that other functions can be available through the system. For example, additional functions could include a multiplication, a division, a subtraction, standard deviation, a first derivative, and a second derivative.FIGS.171-172, described in greater detail below in Appendix A, illustrate some example GUI screens through which a user can define computed value attributes.
After the attribute has been defined via the process flow ofFIG.9, theontology320 can be updated by adding the details for attribute330 toontology320.
It should be understood that additional operations can be included in the attribute definition process flow if desired by a practitioner. For example, if a practitioner wishes to attach timeframe details to attributes, a timeframe definition process flow can be added to theFIG.9 process flow.
FIG.10 depicts an example process flow for parameterizing a characterization object in a communication goal statement and ontology.Characterizations332 are editorial judgments based on defined qualifications that determine the language used when certain conditions are met. Through acharacterization332, a user is able to associate descriptive language with an entity type based on the nature of one or more attributes of that entity type. Atstep1000, the processor selects the entity type to be characterized in response to user input.FIG.11 provides an example process flow that elaborates on how the entity type can be defined.
Atstep1002, the system determines whether the user wants to create a new characterization or select an existing characterization. This step can be performed in a manner similarly to step900 inFIG.9, but for characterizations rather than attributes. If an existing characterization is desired, the system can make a selection of an existing characterization in response to user input atstep1012. However, if a new characterization is desired, the process flow proceeds to step1004.
At step1004, the user selects the attribute(s) for use in the characterization. If the attribute needs to be defined, the process flow ofFIG.9 can be followed. For example, if thecharacterization332 is meant to characterize the performance of a salesperson in terms of sales by the salesperson, step1004 can result in the user selecting the attribute “sales” as the attribute by which the characterization will be determined.
Atstep1006, the user sets the qualification(s) by which to evaluate the characterization. For example, these qualifications can be a series of thresholds by which the values of the sales attribute are judged (e.g., the characterization changes based on whether the sales amount are above or below a threshold of $10,000). Multiple thresholds can be defined for a characterization, which would then yield more than two potential outcomes of a characterization (e.g., three or more tiers of characterization outcomes). Also, the qualifications need not be defined in terms of fixed thresholds. The thresholds can also be flexibly defined in terms of direct attributes and/or computed value attributes (for example, a salesperson can be characterized as a satisfactory salesperson if the sales attribute for the subject salesperson has a value that exceeds the value of the benchmark attribute for the subject salesperson; as another example, a salesperson can be characterized as an above-average salesperson if the sales attribute for the subject salesperson has a value that exceeds the average value of the sales attributes for the all of the salespeople within a company). As part of defining the qualifications,step1006 can also involve the user specifying the operators by which to judge qualifications. Examples of operators may include “greater than”, “less than”, “greater than or equal to”, “equals”, etc. Atstep1008, the user sets the expression(s) for the subject characterization. These expressions can then be used by the NLG process when articulating the subject characterization in a narrative story. For example, in a characterization relating to the performance of a salesperson in terms of sales, expressions such as “star performer”, “outperformed”, “high performer” etc. can be used in situations where the sales exceeded the highest threshold, while expressions such as “laggard”, “poor performer”, “struggled”, etc. can be used in situations where the sales were below the lowest threshold.
FIGS.77-80,146-161, and204-209 depict example GUIs through which a user can provide inputs for the process flow ofFIG.10. Upon the completion of theFIG.10 process flow, the system can update theontology320 to add the details for the definedcharacterization332. It should be understood that additional operations can be included in the characterization definition process flow if desired by a practitioner. For example, if a practitioner wishes to attach timeframe details to characterization, a timeframe definition process flow can be added to theFIG.10 process flow.
FIG.11 depicts an example process flow for parameterizing an entity type in a communication goal statement and ontology. Entity types are how the system knows what to talk about with respect to a communication goal statement. An entity type is a primary object in the ontology which has particular attributes (e.g., a department (entity type) has expenses (attribute). An entity is a specific instance of an entity type, with data-driven values for each attribute (e.g., John Smith is a specific instance of a salesperson entity type, and this entity has a specific data value for the sales attribute of a salesperson entity type).Ontology320 may include more than one entity type.
Atstep1100, the processor decides, in response to user input, whether to create a new entity type or select an existing entity type. This step can be performed while a user is composing a communication goal statement. Ifstep1100 results in a determination that an existing entity type is to be used, the process flow can proceed to step1150 where an existing entity type is selected.
Ifstep1100 results in a determination that a new entity type is to be created, the process flow proceeds to step1102. Atstep1102, the user provides a label for the entity type. This label can be used as the entity type's name (e.g., a “salesperson” entity type). Next, atstep1104, the user sets a base type for the subject entity type. Examples of available base types to choose from can include person, place, thing, and event. However, it should be understood that more, fewer, and/or different base types can be used. The specified base type can be used by the AI logic to inform decision-making about the types of pronouns that can be used to express the subject entity type, among other expressive qualities for the entity type.
Atstep1106, the user sets one or more expressions in relation to the subject entity type. These expressions provide the NLG process with a variety of options for expressing the entity type in a story.
TheFIG.11 process flow can also include options for attaching a number of additional features to entity types.
For example, a relationship can be added to the subject entity type at steps1108-1116. Atstep1110, the user identifies the entity type to which the subject entity type is to be related. If the relating entity type does not exist, the process flow ofFIG.11 can be recursively invoked to create the relating entity type. An example of a relating entity type might be a “company” entity type with respect to a subject entity type of “salesperson”. Steps1112-1116 operate to define the nature of the relationship between the subject entity type and the relating entity type. Atstep1112, the process flow determines whether the user wants to create a new relationship or select an existing relationship. If create new is selected atstep1112, the process flow proceeds to step1114 where the user provides an expression for the new relationship (e.g., the relating expression can be “employed by” to relate the subject entity type of “salesperson” to the relating entity type of “company” (thus, the “salesperson” is “employed by” the “company”). Multiple expressions may be provided atstep1114 to provide variability during story rendering. For example, the expressions “works for”, “is a member of”, “belongs to” might be used as alternative expressions for the relationship between the “salesperson” entity type and the “company” entity type. If select existing is selected atstep1112, the process flow proceeds to step1116 where a user can be presents with a list of existing relationship expressions known to the system or within the ontology. The user can then select one or more of these expressions to define the nature of the relationship between the subject entity type and the relating entity type.
Another example of a feature that can be added to an entity type is a rank. Steps1120-1124 describe how a rank can be attached to an entity type. The rank feature provides the AI with a mechanism for notionally identifying entities to be discussed in a narrative story even if the user does not know in advance which specific entities are to be discussed. For example, a user may want the system to generate a story about the3 top ranked salespeople in terms of sales, but does not know a priori who these salespeople are. The rank feature attached to the salesperson entity type allows for a user to easily compose a communication goal statement that can be used by the AI to generate an appropriate narrative story. Atstep1122, the user sets the attribute by which the subject entity type is to be ranked. For example, if salespeople are to be ranked by sales, the user can specify the sales attribute atstep1122. TheFIG.9 process flow can be followed to specify the subject attribute for ranking. Atstep1124, the user sets a rank slice for the rank feature. The rank slice defines a depth for the rank feature with respect to the subject entity type. If the rank slice is set to 1, only the top ranked entity would be applicable. If the rank slice is set to n, the n highest rank entities would be returned.
Another example of a feature that can be added to an entity type is a qualification. Steps1130-1134 describe how a qualification can be attached to an entity type. Similarly to the rank feature, the qualification feature provides the AI with a mechanism for notionally identifying entities to be discussed in a narrative story even if the user does not know in advance which specific entities are to be discussed. For example, a user may want the system to generate a story about the salespeople who have 10 years of more of experience or who have been characterized as star performers in terms of sales, but does not know a priori who these salespeople are. The qualification feature attached to the salesperson entity type allows for a user to easily compose a communication goal statement that can be used by the AI to generate an appropriate narrative story. Atstep1132, the user sets the attribute330 and/orcharacterization332 that will be used to filter/qualify the subject entity type. For example, if the user wants the story to focus on salespeople with at least 10 years of experience, the user can specify a “years worked” or “start date” attribute atstep1132. TheFIG.9 process flow can be followed to specify the subject attribute for qualification. If a user wants to specify a characterization atstep1132, theFIG.10 process flow can be followed in order to specify a characterization of qualification. Atstep1134, the user defines condition(s) for the qualification. For example, if a “years worked” attribute is set as the qualification and the user wants to qualify salespeople based on 10 years of experience, the user can define the condition on the attribute as 10 years.
FIGS.121-161 depict example GUIs through which a user can provide inputs for the process flow ofFIG.11. Upon the completion of theFIG.11 process flow, the system can update theontology320 to add the details for the definedentity type322. It should be understood that additional operations can be included in the entity type definition process flow if desired by a practitioner. For example, if a practitioner wishes to attach timeframe details to characterization, a timeframe definition process flow can be added to theFIG.11 process flow. As another example, theFIG.11 process flow can include branching options for adding an attribute to an entity type directly from theFIG.11 process flow if desired. Similarly, theFIG.11 process flow can also include branching options for adding a characterization to an entity type directly from theFIG.11 process flow if desired.
FIG.12 depicts an example process flow for parameterizing a timeframe in a communication goal statement and ontology. A timeframe is a unit of time used as a parameter to constrain the values included in the expression of a communication goal statement or narrative story.Ontology320 may include more than one timeframe.
Atstep1200, the processor decides, in response to user input, whether to create a new timeframe or select an existing timeframe. This step can be performed while a user is composing a communication goal statement. Ifstep1200 results in a determination that an existing timeframe is to be used, the process flow can proceed to step1212 where an existing timeframe is selected.
Ifstep1200 results in a determination that a new timeframe is to be created, the process flow proceeds to step1202. Atstep1202, the system determines whether the user wants to create a new timeframe type or select from among existing timeframe types. Examples of timeframe types include years, months, days, hours, etc.
If a new timeframe type is desired, the process flow proceeds to step1204 where the user defines the timeframe type andstep1206 where the user sets the expression(s) for the timeframe type. The expression(s) provide the NLG process with a variety of options for expressing the timeframe in a story.
If an existing timeframe type is desired, the process flow proceeds to step1208 where the user makes a selection from among existing timeframe types andstep1210 where the user defines a designation for the selected timeframe type. Through this designation, the user can define qualifications via a “when” statement or the like that defines time-based conditions (e.g., “the month of the year when the sales of the store were highest”).
FIGS.67-69,92-93,101,107,167-170,192, and201-203 depict example GUIs through which a user can provide inputs for the process flow ofFIG.12. Upon the completion of theFIG.12 process flow, the system can update theontology320 to add the details for the definedtimeframe344.
FIG.13 depicts an example process flow for parameterizing a timeframe interval for use with a timeframe. The timeframe interval defines how the system should consider intervals of time within a timeframe (e.g., days of the month, weeks of the month, months of the year, quarters of the year, hours of the day, etc.). Atstep1300, the processor decides, in response to user input, whether to create a new timeframe interval or select an existing timeframe interval. Ifstep1300 results in a determination that an existing timeframe interval is to be used, the process flow can proceed to step1306 where an existing timeframe interval is selected. Ifstep1300 results in a determination that a new timeframe interval is to be created, the process flow proceeds to step1302. Atstep1302, the user defines the timeframe interval, and atstep1204 the user sets one or more expression(s) for the timeframe interval. The expression(s) provide the NLG process with a variety of options for expressing the timeframe interval in a story. Upon the completion of theFIG.13 process flow, the system can update theontology320 to add the details for the defined timeframe interval.
As explained above, theontology320 defined via the process flows ofFIGS.9-13 can be leveraged by the AI in coordination with the composed communication goal statements to not only determine the content to be expressed in the narrative story but also to determine how that content should be expressed in the narrative story.
Subgoals within Communication Goal Statements:
The communication goal statements may be interpreted by the system to include a plurality of subgoals or related goals. Thus, in order for a narrative story to satisfy the communication goal associated with a communication goal statement, it may be desirable to the narrative story to first satisfy one or more subgoals related to the communication goal of the communication goal statement. An example of this is shown byFIGS.14A-D. As shown byFIG.14A, acommunication goal statement1400 may be associated with a parent or base communication goal. Theinterpreter506 may be configured to interpretcommunication goal statement1400 as being comprised of two or morecommunication goal statements1402 and1404, where thesecommunication goal statements1402 and1404 are associated with subgoals relating to the parent/base goal. When theAI502 seeks to determine the content for inclusion in the story, theinterpreter506 will process thecommunication goal statements1402 and1404 when generating the computed outline.
FIG.14B shows an example of this. In this example, the base communication goal statement corresponding to the parent/base goal is “CompareValue 1 toValue 2” (see base communication goal statement406). This basecommunication goal statement406 can be comprised of a series of three base communication goal statements, each relating to subgoals of the parent/base goal. In this example, these three base communication goal statements are: (1) “Present Value 1”4021, (2) “Present Value 2”4022, and (3) “Characterize the Difference BetweenValue 1 andValue 2”404. Thus, for the narrative story to accomplish the overall parent/base goal of comparingValue 1 toValue 2, it will be helpful for the narrative story to firstpresent Values 1 and 2 and then provide a characterization of the difference betweenValues 1 and 2.
During the composition process, a user may parameterize the basecommunication goal statement406 ofFIG.14B as shown byFIG.14C. As shown byFIG.14C, the parameterizedcommunication goal statement406bcan read “Compare the Sales of the Salesperson during the Timeframe to the Benchmark of the Salesperson”, whereValue 1 is the “Sales of the Salesperson during the Timeframe” andValue 2 is the “Benchmark of the Salesperson”. Theinterpreter506 can be configured to interpret parameterizedcommunication goal statement406bfor the purposes of story generation as the following three parameterized communication goal statements: (1) “Present the Sales of the Salesperson during the Timeframe”4021b, (2) “Present the Benchmark of the Salesperson”4022b, and (3) “Characterize the Difference Between the Sales of the Salesperson during the Timeframe and the Benchmark of the Salesperson”404b. The system can then interact withontology320 to generate a narrative story as shown byFIG.14D from these three parameterized communication goal statements. As can be seen byFIG.14D, the NLG process created the first sentence of the narrative story in a compound form to satisfy the subgoals associated with the first two parameterizedcommunication goal statements4021band4022b. The final sentence of the narrative story satisfies the subgoal associated with the third parameterizedcommunication goal statement404b. Overall, the narrative story satisfies the parent/base goal associated with parameterizedcommunication goal statement406b.
During the process of composing communication goal statements for use in the narrative generation process, the system can provide GUI screens to a user that allows the user to expand a communication goal statement to show communication goal statements associated with subgoals. Furthermore, the GUI can be configured to respond to user input to selectively opt in and opt out of which subgoals are to be included in the narrative generation process for a section of the story outline. Thus, if a user wants the story to include a headline or a title that is drawn from the “Compare” communication goal statement, a user can use a GUI to expand the “Compare” communication goal statement into statements for its constituent subgoals. For the headline/title, a user can choose to selectively opt out of the first two “Present” statements but retain the “Characterize” statement so that the headline/title is focused on a desired main point. Then, in the body of the narrative story, the user can selectively retain all of the constituent subgoals for the “Compare” statement so that the body of the narrative story provides the context for the comparison.FIGS.75-76 and215 depict example GUIs through which a user can expand a communication goal statement to view its related subgoals and selectively choose which of the subgoals will be used during the narrative generation process.
Example Embodiments for a Conditional Outcome Framework to Determine Narrative Content:
In another example embodiment, the system can employ a conditional outcome framework to support narrative generation. For example,AI502 can employ a conditional outcome framework to determine content for inclusion in a narrative.FIG.15A illustrates a simplified example where a conditionaloutcome data structure1502 is linked with one or moreidea data structures1504, where eachidea data structure1504 represents an idea that is to be expressed in a narrative. Theconditional outcome structure1502 can comprise (1) a name corresponding to the conditional outcome, (2) one or more conditions that define when the conditional outcome is defined as true, and (3) one or more links to one or more content oridea structures1502/1504. Thus, the conditional outcome data structure provides a mechanism for analyzing data to intelligently determine what ideas should be expressed in a narrative about that data. This can serve as a powerful building block for constructing theAI502 in a manner so that the content expressed in a narrative will intelligently respond to the underlying data being considered.
FIG.15B depicts an example that shows how the conditional outcome framework can be used in combination with a communication goal statement to intelligently adapt narratives to their underlying data in a manner that satisfies a desired communication goal. InFIG.15B,narrative analytics510 employ aconditional outcome framework1500. As explained in connection withFIG.5, thenarrative analytics510 can be associated with acommunication goal statement390. Thus, as the system processes acommunication goal statement390, an appropriate set ofnarrative analytics510 tailored toward satisfying that communication goal statement can be selected. Theconditional outcome framework1500 can include one or moreoutcome data structures1502 linked with one or moreidea data structure1504 as discussed above in connection withFIG.15A. Furthermore, any of theoutcome data structures1502 and/oridea data structures1504 can be associated with supportinganalytics1506. The supporting analytics provide logic that can be used by the system to compute information used for navigating theconditional outcome framework1500 and identifying ideas during execution at526 (seeFIG.5).
It should be understood that theoutcome data structures1502 can be tied together in numerous arrangements to define branching logic for theconditional outcome framework1500. For example, there can be multiple layers of outcome data structures1502 (each with associated conditions) to provide branching operations at multiple levels. Such branching structures allow for theconditional outcome framework1500 to accommodate highly complex and intelligent decision-making as to what ideas should be expressed in a narrative in view of the nature of the data under consideration. Moreover, theoutcome data structures1502,idea data structures1504, and supportinganalytics1506 can be parameterized to allow their re-use in a wide variety of contexts.
It should also be understood that the sameidea data structure1504 might be linked to multiple differentoutcome data structures1502. Furthermore, a givenoutcome data structure1502 might be linked to multipleidea data structures1504. Examples of such arrangements are discussed below with reference toFIG.16 et seq.
Example Embodiments for “Analyze” Communication Goal Statements:
As mentioned above, an operator such as “Analyze” can be used to identify a communication goal statement corresponding to an analysis communication goal. An example of a base communication goal statement for an analysis communication goal that could be supported by the system is “Analyze Entity Group by Attribute”, where “Entity Group” serves as a parameter for a group of entities in theontology320 and “Attribute” serves as a parameter for an attribute of the specified entity group in theontology320. Such a base communication goal statement could be parameterized into a communication goal statement as “Analyze the Salespeople by Sales”, where the Entity Group is specified as “Salespeople” (which can be a group of entities in theontology320 that have the entity type of “Salesperson”), and where the Attribute is specified as “Sales” (which can be an attribute of a “Salesperson” in the ontology320). However, it should be understood that such a base communication goal statement could be parameterized in any of a number of different ways. Further still, it should be understood that different base communication goal statements could be used to satisfy other analysis-related communication goals, some examples of which are discussed below.
The system can link a base communication goal statement of “Analyze Entity Group by Attribute” withnarrative analytics510 that are linked to a story structure that aims to provide the reader with an understanding of the distribution of a particular value across a group of entities. Accomplishing this may involve expressing a variety of quantitative ideas (the number of entities in the group, the average value within a group, the median value within a group, the entities with the highest and lowest values, etc.) and more qualitative ideas (the values are distributed normally, the values are distributed exponentially, the values demonstrate a “long-tail” distribution, one entity in particular had a much higher value than the other entities, etc.). Accordingly, if desired by a practitioner, the system can directly map such a communication goal statement to parameterized narrative analytics and a parameterized story configuration that will express these concepts. However, the use of aconditional outcome framework1500 by the relevant narrative analytics can provide additional flexibility where the resulting narrative story structure will adapt as a function of not only the specified communication goal but also as a function of the underlying data.
FIG.16 discloses an example embodiment for a conditional outcome framework that can be used by thenarrative analytics510 associated with acommunication goal statement390 for “Analyze Entity Group by Attribute”. In this example, the conditional outcome framework can employ multiple levels or layers ofoutcomes1502. For example, a first layer ofoutcomes1502 can correspond to different conditional outcomes that characterize the size of the group specified in thecommunication goal statement390. The second layer ofoutcomes1502 can correspond to different conditional outcomes that characterize the distribution of group members within the group based on the attribute specified by thecommunication goal statement390. The first layerconditional outcomes1502 can include a “tiny group”outcome1502, a “decent sized group”outcome1502, and a “large group”outcome1502. Each of these differentconditional outcomes1502 can be tied to the conditions that are evaluated by the system to assess whether thatconditional outcome1502 fits the underlying data.
To drive the assessments regarding group size, the supportinganalytics1506 for the conditional outcome framework can include groupsize characterization analytics1600 for the variousgroup size outcomes1502. For example, the “tiny group”outcome1502 can be associated with parameterized logic that determines whether the number of members of the group specified by thecommunication goal statement390 is less than or equal to 1 (it should be understood that other thresholds could be used to define the boundary conditions for a “tiny group”). If so, the “tiny group”outcome1502 would evaluate as true. As another example, the “decent sized group”outcome1502 can be associated with parameterized logic that determines whether the number of members of the group specified by thecommunication goal statement390 is between 2 and 50 (it should be understood that other thresholds could be used to define the boundary conditions for a “decent sized group”). If so, the “decent sized group”outcome1502 would evaluate as true. As another example, the “large group”outcome1502 can be associated with parameterized logic that determines whether the number of members of the group specified by thecommunication goal statement390 exceeds 50 (it should be understood that other thresholds could be used to define the boundary conditions for a “large group”). If so, the “large group”outcome1502 would evaluate as true.
To drive the assessments regarding distribution within the group, the supportinganalytics1506 for the conditional outcome framework can include groupdistribution characterization analytics1602 for the variousgroup distribution outcomes1502. In this example, the system seeks to characterize (1) a “tiny group” as being an empty group (see the “empty” outcome1502) or a single member group (see the “just one” outcome1502), (2) a “decent sized group” as being a typical distribution (see “typical distribution” outcome1502), a distribution that is clumpy at the top (see “clump at top” outcome1502), or a flat distribution (see the “flat distribution” outcome1502), and (3) a “large group” as being a normal distribution (see “normal distribution” outcome1502) or a long-tail distribution (see the “long-tail distribution” outcome1502). Each of thesesecond level outcomes1502 can be associated with parameterizedanalytics1602 that specify the computations used for characterizing the nature of the distributions within the group. For example, the “clump at top”outcome1502 can be associated with parameterizedanalytics1602 that are configured to sort entities by a particular value, group entities with similar values, and then determine if the highest ranked entities constitute a subgroup of similar values. Any thresholds or parameters used in determining such subgroups may be built into the system, specified directly by users, or tuned automatically by the system. As another example, the “long-tail distribution”outcome1502 can be associated with parameterizedanalytics1602 that are configured to perform distribution analysis and then determine if a significant proportion of the entities contributed values well below the mean contribution. Again, any thresholds or parameters used could be built into the system, specified directly by users, or tuned automatically by the system.
InFIG.16, each second layer/level outcome1502 is linked to one or moreidea data structures1504. Thus, the resolution of which ideas should be expressed in a given narrative that is generated to satisfy thecommunication goal statement390 will depend on whichoutcomes1502 were deemed true in view of the underlying data. The relationships between ideas for expression in a narrative to the nature of the underlying data in this example can be seen in the table below:
Outcome of CharacterizingIdeas to be Expressed in the
the Underlying DataNarrative About the Underlying Data
Tiny Group (Empty Set)Narrative should express the following idea:
A count of the group members
Tiny GroupNarrative should express the following idea:
(Single Member)A count of the group members
Decent Sized GroupNarrative should express the following ideas:
(Typical Distribution)A count of the group members
The total of the attribute values for the group
The mean of the attribute values for the group
The names and values of the top N group members as
ranked according to the group members’ associated
attribute values.
Decent Sized GroupNarrative should express the following ideas:
(Clump at Top Distribution)A count of the group members
The total of the attribute values for the group
The mean of the attribute values for the group
A discussion of the clumpy nature of the distribution of
members within the group with respect to the attribute
values.
The names and values of the group members in the top
clump (as ranked according to the group members’
associated attribute values).
Decent Sized GroupNarrative should express the following ideas:
(Flat Distribution)A count of the group members
The total of the attribute values for the group
The mean of the attribute values for the group
A discussion of the flat nature of the distribution of
members within the group with respect to the attribute
values.
Large GroupNarrative should express the following ideas:
(Normal Distribution)A count of the group members
The mean of the attribute values for the group
The names and values of the group members in the top n
percentile (as ranked according to the group members’
associated attribute values).
Large GroupNarrative should express the following ideas:
(Long Tail Distribution)A count of the group members
The total of the attribute values for the group
A discussion of the long tail nature of the distribution of
members within the group with respect to the attribute
values.
The names and values of the group members in the top n
percentile (as ranked according to the group members’
associated attribute values).

Anyideas1504 that are resolved based on the conditional outcome framework could then be inserted into the computedstory outline528 for use by AI504 (together with their associated specifications in view of the underlying data) when rendering the desired narrative.
To the extent that any of theideas1504 need additional computed values in order to be expressed (where such values were not previously computed byanalytics1600 or1602), the supportinganalytics1506 can further includeidea support analytics1604. For example, if theanalytics1600 and1602 do not compute a mean value for the attribute values within the group, theidea support analytics1604 can include parameterized logic that computes such a mean value for the underlying data.
Thus, it can be seen that the example conditional outcome framework for a communication goal statement can define a hierarchical relationship among linked outcomes and ideas together with associated supporting analytics to drive a determination as to which ideas should be expressed in a narrative about a data set, where the selection of ideas for expression in the narrative can vary as a function of the nature of the data set.
In example embodiments, the conditional outcome framework can be designed so that it does not need any input or configuration from a user other than what is used to compose the communication goal statement390 (e.g., for the “Analyze Entity Group by Attribute” communication goal statement, the system would only need to know the specified entity group and the specified attribute). However, for other example embodiments, a practitioner might want to expose some of the parameters of the conditional outcome framework to users to allow further configurations or adjustments of the conditional outcome framework.
For example, a practitioner might want to implement the thresholds used within the conditional outcome framework as user-defined values. In the context ofFIG.16, this could involve exposing the thresholds used for characterizing the size of the group to users so that a user can adjust the group size boundaries in a desired manner (e.g., in some contexts, a large group might have a minimum of 100 members, while in other contexts a large group might have a minimum of 1000 members). Similarly, the values for “n” used by the conditional outcome framework ofFIG.16 (e.g., the top “n” group members or the “nth percentile”) could be exposed to users to allow adjustments of the value used for n.
As another example, a practitioner might want to provide users with a capability to enable/disable the links betweenoutcomes1502 andideas1504 in a conditional outcome framework. For example, a GUI could present a user with lists of all of theoutcomes1502 andideas1504 that can be tied to a communication goal statement within a conditional outcome framework. The user could then individually select whichideas1504 are to be linked to whichoutcomes1502. If desired by a practitioner, that conditional outcome framework can include default linkages that are presented in the GUI, and the user could make adjustments from there.FIG.17A shows an example where a user has adjusted the conditional outcome framework to add alinkage1700 between the “present the mean”idea1504 and the “long tail distribution”outcome1502.FIG.17B shows an example where a user has removed thelinkages1702 that had previously existed between the “present the mean”idea1504 and the “typical distribution”, “clump at top”, “flat distribution”, and “normal distribution”outcomes1502.
FIG.18A shows an example of anarrative1802 that can be generated using the conditional outcome framework ofFIG.16 as applied to acommunication goal statement1800 of “Analyze the salespeople by bookings” with respect to a data set that includes various salespeople and their associated bookings (e.g., the dollar values of their bookings). In this example, thenarrative1802 would be generated after an analysis of the data set arrived at a determination that theoutcomes1804 were true (the salespeople group was “decently sized” and has a “typical distribution” of salespeople with respect to their bookings). As can be seen inFIG.18A, thenarrative text1802 expresses the followingideas1806 that are tied to the outcomes1804: (1) a count of the number of salespeople in the group, (2) the total amount of bookings for the salespeople in the group, (3) the mean value of bookings for the salespeople in the group, and (4) the names of the top 3 salespeople in the group (by the booking values) and the booking values for each of the top 3.
FIG.18B shows an example of anarrative1812 that can be generated using the conditional outcome framework ofFIG.16 as applied to acommunication goal statement1810 of “Analyze the citizens by their salary” with respect to a data set that includes various citizens and their associated salaries. In this example, thenarrative1812 would be generated after an analysis of the data set arrived at a determination that theoutcomes1814 were true (the citizens group was a “large group” and has a “normal distribution” of citizens with respect to their salaries). As can be seen inFIG.18B, thenarrative text1812 expresses the followingideas1816 that are tied to the outcomes1814: (1) a count of the number of citizens in the group, (2) the mean value of the salaries for the citizens in the group, and (3) the average salary of the top decile of citizens (with respect to their salaries).
FIGS.18A and18B thus show how the same parameterized conditional outcome framework can be used to generate narrative stories across different content verticals (e.g., a story about salespeople and their bookings as inFIG.18A versus a story about citizens and their salaries as inFIG.18B), which demonstrates how the parameterized conditional outcome framework provides an effective technical solution to the technical problem of horizontal scalability in the NLG arts.
It should be understood that the system can also be designed to support other “analyze” communication goals. For example, another base communication goal statement that can be used by the system can be “Analyze Entity Group byAttribute 1 andAttribute 2”. Such a multi-attribute analysis goal can trigger the performance of tradeoff analysis as between the two attributes (and the expression of ideas that result from this analysis). For example, this goal may trigger analysis that results in quantitative ideas like the average values forAttribute 1, the average values forAttribute 2, the entity with the largest value forAttribute 1, etc. Assuming the system has an understanding of the relationship betweenAttribute 1 and Attribute 2 (for instance that “Attribute 1 is a driver ofAttribute 2” or that higher values forAttribute 1 represent a positive outcome while higher values forAttribute 2 represent a negative outcome), the goal may also result in more qualitative ideas that capture intuitive understandings like “Entities that score have high values forAttribute 1 also have high values forAttribute 2”, “The entity with the highest value forAttribute 1 actually has a really low value forAttribute 2”, or “There's no correlation between values forAttribute 1 andAttribute 2 in the group”. Accordingly, it should be understood that it may be desirable for the narratives produced in response to the “Analyze Entity Group byAttribute 1 andAttribute 2” communication goal statement to express different ideas than the narratives produced in response to the “Analyze Entity Group by Attribute” communication goal statement.
FIGS.19A and B disclose an example embodiment for a conditional outcome framework that can be used by thenarrative analytics510 associated with acommunication goal statement390 for “Analyze Entity Group byAttribute 1 andAttribute 2”. In these examples, the outcomes can be associated with groupsize characterization analytics1600 and groupdistribution characterization analytics1602 as discussed above in connection withFIG.16. However, these outcomes can be linked to different ideas (and associated idea support analytics1604) as indicated byFIGS.19A and B. For example, the ideas ofFIGS.19A and B can include totals, means, and names/values for the top n with respect to each attribute of thecommunication goal statement390. The ideas can also express whether the distributions of salespeople with respect to the two attributes are similar to each other or different than each other.
FIG.19A shows an example of anarrative1902 that can be generated using the conditional outcome framework shown by the upper portions ofFIG.19A-B as applied to acommunication goal statement1900 of “Analyze the salespeople by bookings and count of deals” with respect to a data set that includes various salespeople and their associated bookings (e.g., the dollar values of their bookings) and counts of their sales deals. In this example, thenarrative1902 would be generated after an analysis of the data set arrived at a determination that theoutcomes1904 were true (the salespeople group was a “tiny group” with only a single member). As can be seen inFIG.19A, thenarrative text1902 expresses the followingideas1906 that are tied to the outcomes1904: (1) a count of the number of salespeople in the group, (2) the names of the top n salespeople in the group (by the first attribute, bookings value) and the booking values for each of the top n salespeople (which in this example is a single person's bookings), and (3) the names of the top n salespeople in the group (by the second attribute, deal count) and the count of deals for each of the top n salespeople (which in this example is a single person's deals).
FIG.19B shows an example of anarrative1912 that can be generated using the conditional outcome framework shown by the upper portions ofFIGS.19A-B as applied to the samecommunication goal statement1900 shown byFIG.19A (“Analyze the salespeople by bookings and count of deals”) but with respect to a different data set that includes various salespeople and their associated bookings (e.g., the dollar values of their bookings) and counts of their sales deals. In this example, thenarrative1912 would be generated after an analysis of the data set arrived at a determination that theoutcomes1914 were true (the salespeople group was a “decent sized group” and has similar distributions of values among the salespeople with respect to the two attributes, bookings and deal counts). As can be seen inFIG.19B, thenarrative text1912 expresses the followingideas1916 that are tied to the outcomes1914: (1) a count of the number of salespeople in the group, (2) the total value of the first attribute (bookings) for the salespeople group, (3) the total value of the second attribute (deal counts) for the salespeople group, (4) the mean value of the first attribute (bookings) for the salespeople group, (5) the mean value of the second attribute (deal counts) for the salespeople group, (6) the names and attribute values for the top n of the salespeople group with respect to the first attribute (bookings), (7) the names and attribute values for the top n of the salespeople group with respect to the second attribute (deal counts), and (8) a statement that the distributions of salespeople with respect to the two attributes were similar to each other.FIGS.19A and B thus show how the same conditional outcome framework and same communication goal statement can produce dramatically different stories based on the content of the data set under consideration.
Another example of a base communication goal statement for an “analyze” communication goal that can be used by the system can be “Analyze Entity Group by a Change in Attribute (Over Time)”. Such communication goal statement can trigger analysis that eventually results in quantitative ideas representing the total change in value, average change in value, the median change in value, which entity had the biggest change in values, the number of entities that had positive changes, etc. Such a goal might also produce more qualitative ideas that capture intuitive understandings such as “All members of the group had positive changes”, “About half of the group had positive changes and about half had negative changes”, or “The group as a whole had a positive change, but it was really a small group of entities that had large positive changes while the rest had smaller negative changes. A practitioner may desire that narratives produced from this communication goal statement express different ideas than those generated from the other “analyze” communication goals discussed above.
FIG.20A discloses an example embodiment for a conditional outcome framework that can be used by thenarrative analytics510 associated with acommunication goal statement390 for “Analyze Entity Group by a Change in Attribute (Over Time)”. In this example, the framework includesattribute change analytics2008 that computes the changes/deltas in the specified attribute values for each member of the entity group over the relevant time period. These deltas can then be used as the attribute values for the conditional outcome framework that can otherwise function as shown byFIG.16.
FIG.20A shows an example of anarrative2002 that can be generated using the conditional outcome framework shown by the upper portion ofFIG.20A as applied to acommunication goal statement2000 of “Analyze the salespeople by the change in their bookings” (where the relevant time frame can be either a default timeframe, system-determined time frame, or user-determined time frame, in this case corresponds to a time frame of Q1 to Q2) with respect to a data set that includes various salespeople and their associated bookings (e.g., the dollar values of their bookings) over time. In this example, thenarrative2002 would be generated after an analysis of the data set arrived at a determination that theoutcomes2004 were true (the salespeople group was a “decent sized group” with a typical distribution of attribute delta values for the salespeople). As can be seen inFIG.20A, thenarrative text2002 expresses the followingideas2006 that are tied to the outcomes2004: (1) a count of the number of salespeople in the group, (2) the total number of salespeople in the group, (3) the mean value of changed bookings from Q1 to Q2 for the salespeople group, and (4) the names of the top n salespeople in the group (by their associated booking value deltas) and the booking value deltas for each of the top n salespeople.
FIG.20B discloses another example embodiment for a conditional outcome framework that can be used by thenarrative analytics510 associated with acommunication goal statement390 for “Analyze Entity Group by a Change in Attribute (Over Time)”. In this example, the framework includes group size change characterization analytics2010, where these analytics2010 are configured to analyzed the specified entity group to assess how its size changed over the relevant time period. In the example ofFIG.20B, there are three outcomes associated with these analytics2010—a conclusion that the group size increased significantly, a conclusion that the group size stayed mostly consistent, and a conclusion that the group sized decreased significantly. To reach these outcomes, the analytics2010 can tie each outcome to thresholds that are applied to computed changes in group size for the relevant time frame. For example, a group size change of +25% or more can be characterized as a significant increase, a group size change of −25% or more can be characterized as a significant decrease, and group sizes changes between these bounds can be characterized as consistent. Other outcomes within the conditional outcome framework can assess the nature of any change with respect to how the group members are ranked by the attribute over the relevant time frame. The analytics for these outcomes can also be parameterized to test whether their corresponding outcomes are applicable to the subject data. Furthermore,FIG.20B shows how the various ideas tied to the outcomes can include various informational items tied to the starting and ending times for the subject time frame, as well as ideas that express how certain group members rankings changed over the time frame.
FIG.20C shows an example of anarrative2022 that can be generated using the conditional outcome framework shown byFIG.20B as applied to thecommunication goal statement2000 of “Analyze the salespeople by the change in their bookings (over Q1 and Q2)” with respect to a data set that includes various salespeople and their associated bookings (e.g., the dollar values of their bookings) over time. In this example, thenarrative2022 would be generated after an analysis of the data set arrived at a determination that theoutcomes2024 were true (the size of the salespeople group increased significantly over Q1 to Q2, with the leaders among the salespeople with respect to bookings being largely unchanged over Q1 to Q2). As can be seen inFIG.20C, thenarrative text2022 expresses the followingideas2026 that are tied to the outcomes2024: (1) an identification of the change in size for the salespeople group from Q1 to Q2, (2) a count of the members of the salespeople group at Q1, (3) a count of the members of the salespeople group at Q2, (4) the total amount of bookings for the salespeople group at Q1, (5) the total amount of bookings for the salespeople group at Q2, (6) the mean value of bookings for the salespeople group at Q2, and (7) the names and booking values for the top n salespeople at Q2 (in terms of bookings value).
FIG.20D shows an example of anarrative2032 that can be generated using the conditional outcome framework shown byFIG.20B as applied to the samecommunication goal statement2000 shown byFIG.20C (“Analyze the salespeople by the change in their bookings (over Q1 and Q2)”) but with respect to a different data set that includes various salespeople and their associated bookings (e.g., the dollar values of their bookings) over time. In this example, thenarrative2032 would be generated after an analysis of the data set arrived at a determination that theoutcomes2034 were true (the size of the salespeople group decreased significantly over Q1 to Q2, with the salespeople who were leaders at Q1 with respect to bookings having been surpassed in Q2). As can be seen inFIG.20D, thenarrative text2032 expresses the followingideas2036 that are tied to the outcomes2034: (1) an identification of the change in size for the salespeople group from Q1 to Q2, (2) a count of the members of the salespeople group at Q1, (3) a count of the members of the salespeople group at Q2, (4) the total amount of bookings for the salespeople group at Q1, (5) the total amount of bookings for the salespeople group at Q2, (6) the names and booking values for the top n salespeople at Q1 (in terms of bookings value), (7) the names and booking values for the top n salespeople at Q2 (in terms of bookings value), (8) the positions at Q2 of the salespeople who were in the top n at Q1, (9) the positions at Q1 of the sales people who were in the top n at Q2, and (10) a statement that notes the change in leadership for salespeople as between Q1 and Q2.FIGS.20C and20D thus show another example of how the same conditional outcome framework and same communication goal statement can produce dramatically different stories based on the content of the data set under consideration.
Yet another example of a base communication goal statement for an “analyze” communication goal that can be used by the system can be “Analyze Entity Group by Characterization”. Such communication goal statement can trigger analysis that eventually results in quantitative ideas representing the count and percentage of entities with each characterization, the most common characterization, etc. Such a goal might also produce more qualitative ideas that capture intuitive understandings such as “There was a roughly even distribution of characterizations across the group”, “Every entity in the group had the same characterization”, “Almost all of the entities in the group had the same characterization”, etc. A practitioner may desire that narratives produced from this communication goal statement express different ideas than those generated from the other “analyze” communication goals discussed above.
FIGS.21A and B disclose an example embodiment for a conditional outcome framework that can be used by thenarrative analytics510 associated with acommunication goal statement390 for “Analyze Entity Group by Characterization”. In these examples, the outcomes can be associated with groupsize characterization analytics1600 and groupdistribution characterization analytics1602 as discussed above in connection withFIG.16. However, these outcomes can be linked to different ideas (and associated idea support analytics1604) as indicated byFIGS.21A and B. For example, the ideas ofFIGS.21A and B can express concepts such as which characterizations are most common among members of the entity group, and corresponding counts and percentages for various characterizations within the entity group.
FIG.21A shows an example of anarrative2102 that can be generated using the conditional outcome framework shown by the upper portions ofFIG.21A-B as applied to acommunication goal statement2100 of “Analyze the properties by their type” with respect to a data set that includes various properties and associated types for those properties (e.g., single unit homes, duplexes, commercial storefronts, etc.). In this example, thenarrative2102 would be generated after an analysis of the data set arrived at a determination that theoutcomes2104 were true (the size of the group of properties was a “large group” where almost all of the properties in that group shared the same characterization). As can be seen inFIG.21A, thenarrative text2102 expresses the followingideas2106 that are tied to the outcomes2104: (1) an identification of the most common type characterization for the properties in the group (single unit homes in this case), (2) the percentage of properties in the group that have this type characterization, and (3) other common type characterizations that exist in the property group.
FIG.21B shows an example of anarrative2112 that can be generated using the conditional outcome framework shown by the upper portions ofFIGS.21A-B as applied to the samecommunication goal statement2100 shown byFIG.21A (“Analyze the properties by their type”) but with respect to a different data set that includes various properties and their associated type characterizations. In this example, thenarrative2112 would be generated after an analysis of the data set arrived at a determination that theoutcomes2114 were true (the size of the group of properties was a “decent sized group” where there was a relatively even distribution of properties in that group with respect to their type characterizations). As can be seen inFIG.21B, thenarrative text2112 expresses the followingideas2116 that are tied to the outcomes2114: (1) an identification of the common type characterizations for the properties in the group (single family homes, duplex-style homes, and commercial storefronts in this case), (2) the count of properties in the group with each of these common type characterizations, (3) an identification of the uncommon type characterizations for the properties in the group (warehouses and parking lots in this case), and (4) the count of properties in the group with each of these uncommon type characterizations. Thus,FIGS.21A and B show yet another example of how the same conditional outcome framework and same communication goal statement can produce dramatically different stories based on the content of the data set under consideration.
“Smart” Attributes:
In another example embodiment, the system can employ “smart” attributes to support narrative generation. For example, the attributes included in theontology320 can specify a model that identifies one or more drivers of the metrical values for the subject attribute and a functional relationship between the metrical values for the subject attribute and its drivers, even if the values for that attribute are directly referenced in thesource data540. Such a configuration for attributes provides an explicit model through which the system can readily discover and assess the drivers for the subject attribute. Accordingly, this explicit model for an attribute supports narrative generation relating to drivers (e.g., narratives that explain why an attribute may have a certain value, such as explaining whether increased revenue and/or decreased expenses may be the drivers for increased profit). Moreover, by incorporating the explicit model in the ontology's attribute data structure, narrative generation system supports configurability and scalability such that the analytics for driver analysis need not be separately coded for each different use case.
FIG.22A depicts an example structure for asmart attribute2200. Thesmart attribute2200 may specify atype340,name342,timeframe344, and expression(s)346 as discussed above with respect to direct and computed value attributes330aand330b. If thesmart attribute2200 corresponds to adirect attribute330a, then thesmart attribute2200 can also include alocation2202 that identifies where the values for the subject attribute can be found in thesource data540. However, thislocation2202 can be omitted if thesmart attribute2200 corresponds to a computedvalue attribute330b.
Smart attribute2200 can also specify adirectional sentiment2208, which flags whether larger values for the subject attribute are seen as good/positive outcomes or bad/negative outcomes. For example, with respect to an attribute such as “profit”, larger and/or increasing values (up) can be associated with a good sentiment, while smaller and/or decreasing values can be associated with a bad sentiment. Bounds and targets may also be used when defining directional sentiment. For instance, when considering a person's body temperature, 98.6 degrees Fahrenheit is better than 103.4 degrees Fahrenheit, but a temperature of 94.2 degrees Fahrenheit is definitely not better than 98.6 degrees Fahrenheit. To model directional sentiment in instances such as these, ranges can be used to define good/positive values (or bad/negative values as the case may be), with sentiment changing as the values diverge from the defined range (in either direction).
Smart attribute2200 also specifies one ormore models2204 and one ormore model types2206 corresponding to the model(s)2204. Through the model(s)2204 and model type(s)2206, thesmart attribute structure2200 identifies one or more associated drivers for the subject attribute and the nature of the functional relationship between the driver(s) and the subject attribute. Examples ofmodel types2206 that can be used include quantitative models and qualitative models.
With a quantitative model, themodel2204 uses a formulaic and/or computational structure for expressing the model (e.g., Profit=Revenue−Expenses). If desired, a practitioner can also define different types of qualitative models (e.g., complex formulas (such as a quadratic equation), pure linear sum/difference formulas, pure linear product/quotient formulas, etc.). The functional relationship defined by a quantitative model can even be a “black box”, such as specifically in the case of deltas, as long as it is possible to relate changes in the values of the output. For example, a simple stock movement model can be represented as the formula Stock Movement=Closing Price−Opening Price. This stock movement model would allow the movement of a stock to be represented and discussed in a narrative story even if the closing and opening prices are not be present in the data so long as the stock movement data is received in the form of the delta values (where the actual stock movement values are present in the data).
With a qualitative model, themodel2204 identifies of one or more drivers and the nature of their influence on the subject attribute (e.g, a positive influencer or negative influencer), but there is not a precise computational measure that functionally relates the driver(s) to the attribute. As an example, the number of customer visits to a store can be a positive influencer of revenue for that store. With qualitative influencers, some examples of narrative characterizations that can be developed include whether the outcome was expected and whether the outcome was unexpected, particularly when the subject attribute is analyzed over the course of a timeframe. For example, if a store foot traffic attribute is expected to be positively influenced by temperate weather and in-store promotions, but store foot traffic goes down despite increases in temperate weather and in-store promotions, this unexpected result can be an useful insight to capture and expose via automated narrative generation. Similarly, when outcomes go as expected, that can also be an interesting idea to capture and expose via automated narrative generation.
Model2204 can be configured to specify the drivers in terms of other attributes known withinontology320. Thus, the system is able to usemodel2204 to readily identify the drivers for attributes and then locate and interpret data for such drivers.
Also, it should be understood thatsmart attributes2200 can specify multiple models and model types. For example, asmart attribute2200 for an attribute can specify both a quantitative model and a qualitative model. Accordingly, such asmart attribute2200 can be queried to assess both quantitative drivers and qualitative drivers with respect to the subject attribute (e.g., evaluating a store's revenue in terms of not only quantitative drivers such the sum of revenues for individual products sold by the store but also a qualitative driver such as the number of customer visits).
FIG.22B shows an example of how asmart attribute2200 can be used in combination withsource data540 to support driver analysis. In this example, there is asmart attribute2200 for “profit”, which has anattribute type340 of “currency”, anattribute name342 of “profit”, atimeframe344 of “month”, andexpressions346 of “profit”, “net” (and possibly others). Thelocation2202 for “profit” is identified as Column C within thesource data540. In this example,source data540 can be a table or spreadsheet that provides monthly financial information for various store locations (e.g., Column A that provides astore identifier2252, Column B that provides astore address2254, Column C that provides astore profit2256, Column D that providesstore revenue2258, and Column E that provides store expenses2260). Also, in this example, the smart attribute for profit has a quantitative formula model, via2204 and2206, that expresses profit as the difference between revenue and expenses. Because the values of profit are directly specified in Column C ofsource data540, the system need not use themodel2204 to compute store profits. However, as indicated above and further elaborated upon below, this profit model does allow the system to readily identify and investigate the drivers of a store's profits. Furthermore,sentiment2208 is identified to label up as good and down as bad for profit values.
The terms of the specified profit model point tosmart attributes2200 for “revenue” and “expenses” as also shown inFIG.22B. Thus, if the system wants to assess the drivers of store profit, it can read theprofit model2204 to locate information about therevenue attribute2200 and expenses attribute2200, and use this information to locate data values for these attributes to be analyzed as part of the driver investigation.
Thesmart attribute2200 for “revenue”, which has anattribute type340 of “currency”, anattribute name342 of “revenue”, atimeframe344 of “month”, andexpressions346 of “revenue”, “income” (and possibly others). Thelocation2202 for “revenue” is identified as Column D within thesource data540. Also, in this example, the smart attribute for revenue has a quantitative aggregation model, via2204 and2206, that expresses revenue as a sum of component parts (e.g., an aggregation of the revenues attributable to the various products sold by the store). Thesentiment2208 for revenue is that up is good and down is bad.
Thesmart attribute2200 for “expenses”, which has anattribute type340 of “currency”, anattribute name342 of “expenses”, atimeframe344 of “month”, andexpressions346 of “expenses”, “costs” (and possibly others). Thelocation2202 for “expenses” is identified as Column E within thesource data540. Also, in this example, the smart attribute for expenses has a quantitative aggregation model, via2204 and2206, that expresses expenses as a sum of component parts (e.g., an aggregation of the costs attributable to various aspects of store operations (e.g., employee costs, rent, insurance costs, etc.)). Thesentiment2208 for expenses is that up is bad and down is good.
Using these structures, the narrative analytics that support driver analysis can dive into the values for the revenues and expenses of one or more stores within thesource data540 to assess how revenues and expenses have impacted store profits. As a result of such analysis, the system can then draw conclusions such as whether and/or the extent to which increased profits were due to increased revenues and/or decreased expenses.
Furthermore, it should be understood that the use of attribute models forattributes2200 withinontology320 provides opportunities for the narrative analytics to perform deep analyses of data sets. For example, the narrative analytics can conduct not only driver analysis but also a recursive multi-level driver analysis to gain ever deeper insights into the data. For example, the narrative analytics can perform an analysis of the drivers of the drivers (e.g., by using the specified revenue model to assess the drivers of revenue). For example, the driver analysis shown inFIG.22B can reveal that increased revenues may have been the driver for increased profits, and a further second level analysis into the drivers of revenue might reveal that the driver of increased revenues might have been increased sales for Products X and Y. By leveraging the structure ofontology320 and the explicit quantitive and/or qualitative models within theattributes2200, the system would be able to generate a narrative that explains to a reader that increases in sales of Products X and Y were the drivers of an increase store profits.
FIG.22C shows another example of how asmart attribute2200 can be used in combination withsource data540 to support driver analysis. In this example, thesmart attribute2200 for revenue has a qualitative formula model, via2204 and2206, that expresses revenue as being positively influenced by foot traffic and negatively influenced by the number of cold days (e.g., for a store that sells popsicles). In this example, the source data also includes data that identifies thefoot traffic2262 for each store (see Column F) as well as the number of cold days2264 for each store (see Column G). Because the values of revenue are directly specified in Column D ofsource data540, the system need not use themodel2204 to derive values for store revenue. However, as indicated above and further elaborated upon below, this revenue model does allow the system to readily identify and investigate the drivers of a store's revenue.
The terms of the specified revenue model point to directattributes330bfor “foot traffic” and “cold day count” as also shown inFIG.22C. Thus, if the system wants to assess the drivers of store revenue, it can read therevenue model2204 to locate information about thefoot traffic attribute330band coldday count attribute330b, and use this information to locate data values for these attributes to be analyzed as part of the driver investigation.
Thedirect attribute330bfor “foot traffic”, which has anattribute type340 of “integer”, anattribute name342 of “foot traffic”, atimeframe344 of “month”, andexpressions346 of “foot traffic”, “customer visits” (and possibly others). Thelocation2202 for “foot traffic” is identified as Column F within thesource data540. The foot traffic attribute may also include a sentiment (not shown) to indicate that up is good and down is bad.
Thedirect attribute330bfor “cold day count”, which has anattribute type340 of “integer”, anattribute name342 of “cold day count”, atimeframe344 of “month”, andexpressions346 of “cold days”, “chilly days”, “days of 40 degrees or less” (and possibly others). Thelocation2202 for “cold day count” is identified as Column G within thesource data540. The cold day count attribute may also include a sentiment (not shown) to indicate that up is bad and down is good.
Using these structures, the narrative analytics that support driver analysis can dive into the values for the foot traffic and cold days with respect to one or more stores within thesource data540 to draw insights such as whether an increase in foot traffic may have led to increased revenue, whether revenue increased despite a drop in foot traffic, whether a cold wave may have contributed to decreased revenues, etc.
It should be understood thatFIGS.22B and22C show examples only, and that other models can be used, including more complicated models such as complex equations.
To support an understanding of how drivers impact the subject attribute, thesmart attribute2200 can also be associated with analytics that are executed to determine the nature of the relationship between the driver and the attribute. If themodel2204 is a simple quantitative model such as a linear sum or difference or linear product/quotient, then the analytics rules can be relatively simple (larger numbers have larger impacts in linear sums/differences, in both the positive and negative directions; larger numbers in a numerator drive a value up while larger numbers in a denominator drive a value down, etc.).
However, in some instances, particularly with complex formulas, it is not necessarily straightforward how a change in value for a driver will impact a change in value for the subject attribute. To gain such understandings, the system can perform multivariable calculus to draw conclusions about how drivers impact their subject attributes. For example, the narrative analytics can perform a perturbation or sensitivity analysis where the value of the input/driver under consideration is shifted while holding the other input(s)/driver(s) in the model constant to see how these shifts affect the value of the output. In general, the perturbation analysis can shift the input with small changes around the current value.
In scenarios where the model involves understanding what drove the change in a value, another approach is available. In these scenarios, the system may be designed to iteratively zero out the change in each input and determine how fixing each input value alters the calculated output value.
Another technique can be using multivariable calculus to compute the rate of change of the output with respect to different inputs using a symbolic or numeric equation solver such as Mathematica, to directly compute the relevant derivatives. These derivatives can then be used to compute and explain how the values of the drivers affect the values of the attribute.
Further still, the functional relationship identified bymodel2204 need not necessarily be of an input/output nature. The functional relationship specified bymodel2204 may also be a correlation or anti-correlation relationship. With respect to anti-correlation, the driver and the attribute can be involved in a trade-off. In such a case, the system can also be configured to compute Pareto optimal frontiers to describe this trade-off. To assess correlations and/or anti-correlations, the system can receive inputs from a user regarding two or more attributes to be compared with each other to assess degrees of correlation/anti-correlation. Thresholds can be used to govern the levels of correlation or anti-correlation that are needed for two attributes to be judged correlated or anti-correlated (e.g., correlation coefficients above or below a specified value). However, it should be understood that the system can also be configured to automatically detect attributes that are correlated and/or anti-correlated by systematically cycling through multiple permutations of attributes withinontology320 and computing correlation/anti-correlation scores for each. Then, thesmart attribute structure2200 for an attribute can be updated to identify other attributes within theontology320 with which it is correlated/anti-correlated. With such an approach, it may be desirable to employ a secondary classification with such assignments to allow users to remove correlation/anticorrelation assignments that may not be helpful with respect to narrative generation (such as flagging therevenue attribute2200 as correlated with the profits attribute, which might be misinterpreted to mean that profits are a driver of revenue when it is the reverse that is true).
User interfaces (for example, structured GUIs) can be used to permit users to control the content of smartattribute data structures2200. For example, through such a user interface, a user can define themodels2204 andmodel types2206 used bysmart attributes2200. Furthermore, the user can also define thesentiment data2208. However, as indicated above, the models/model types2204/2206 could also be learned automatically via statistical and other techniques.
FIG.23 depicts an example process flow that shows how thesmart attributes2200 can be leveraged to support driver analysis. Atstep2300, a processor determines whether the narrative analytics to be executed call for some level of driver analysis with respect to an attribute. If so, the process flow proceeds to step2302. An example of narrative analytics that may call for driver analysis can be the narrative analytics associated with an “explain” communication goal. However, it should be understood that other communication goals may find driver analysis helpful. For example, themodels2204 could also be used to support communication goals relating to prediction and/or recommendation. For example,models2204 based on perturbation or sensitivity analysis can be used to come up with recommendations in response to an inquiry such as “How can I increase the value of Attribute X?” or with predictions such as “What would likely happen to my revenue if there are 6 cold days next month?”. As such, communication goals relating to predictions and recommendations may also call for driver analysis.
Atstep2302, a processor analyzes theontology320 to determine with the subject attribute has anattribute model2204. If so, the process flow proceeds to step2304, where a processor determines one or more drivers from theattribute model2204. Upon determination of the driver(s), the processor can access the ontology mappings to identify and access the data for the driver(s) (step2306) (see, for example, the linkages intosource data540 shown byFIGS.22B and22C). Thereafter, atstep2308, the processor can perform a variety of analytics on the accessed driver data. These analytics can be analytics that support communication goals such as “explain”, “predict”, and/or “recommend”, etc.
Example Embodiments for “Explain” Communication Goal Statements:
As mentioned above, an operator such as “Explain” can be used to identify a communication goal statement corresponding to an explanation communication goal. An example of a base communication goal statement for an explanation communication goal that could be supported by the system is “Explain (a Value of) an Attribute (of an Entity or Entity Group) (in a Timeframe)” (which can be labeled in shorthand as “Explain a Value”), where “Attribute” serves as a parameter for an attribute of the specified (or understood) “Entity” in theontology320 within a specified (or understood) “Timeframe” in theontology320. Such a base communication goal statement could be parameterized into a communication goal statement as “Explain the Profit of the Store in the Month”, where the Attribute is specified as “Profit” and where the entity or entity group is specified as “Store”. However, it should be understood that such a base communication goal statement could be parameterized in any of a number of different ways. Further still, it should be understood that different base communication goal statements could be used to satisfy other explanation-related communication goals, some examples of which are discussed below.
The system can link a base communication goal statement of “Explain an Attribute of an Entity” withnarrative analytics510 that are linked to a story structure that aims to provide the reader with an understanding of why an attribute has a value that it does. As discussed above, thesenarrative analytics510 can perform driver analysis to gain an understanding of what the contributing and/or inhibiting factors with respect to the attribute's value are. Accomplishing this may involve expressing a variety of ideas that are characterizations of the data including the drivers, such as which drivers are the “biggest contributor(s)”, whether there was a “great team effort” (e.g., lot of drivers making similar positive contributions), whether there was a “wash” situation (e.g.,Driver 1 went up butDriver 2 went down and they largely canceled each other out), whether there was a “held back” situation (e.g., there was a big contribution by a positive driver, but lost of small contributions by negative drivers held the subject value down), etc. Accordingly, if desired by a practitioner, the system can directly map such a communication goal statement to parameterized narrative analytics and a parameterized story configuration that will express these concepts. However, the use of aconditional outcome framework1500 by the relevant narrative analytics can provide additional flexibility where the resulting narrative story structure will adapt as a function of not only the specified communication goal but also as a function of the underlying data.
FIG.24A discloses an example embodiment for a conditional outcome framework that can be used by thenarrative analytics510 associated with acommunication goal statement390 for “Explain a Value”. In this example, the conditional outcome framework can employ multiple levels or layers ofoutcomes1502 that serve as drivertype characterization logic2450 used by supportinganalytics1506. The drivertype characterization logic2450 can be configured to precisely categorize themodel type data2406 associated with the subject attribute, whereupon this categorization will control the type ofideas1504 that will be considered and/or presented with respect to the narrative generation process for “Explain a Value”. For example, thelogic2450 can be configured to assess whether themodel type2406 corresponds to a formula, aggregation, or influencer(s). If themodel type2406 is a formula, thelogic2450 can also determine whether the formula is a complex formula or a pure sum formula (as governed by various predefined parameters applied to the formula in question or by metadata within the smart attribute structure2200). If the formula is a pure sum formula, thelogic2450 can further categorize the pure sum formula based on how many operands are included in the pure sum formula. If themodel type2406 is an aggregation, thelogic2450 can also determine the size of the aggregated group (e.g., how many members are parts of the aggregation) and classify the aggregation accordingly. An aggregation can be distinguished from a pure sum because an aggregation works over a group. For example, an aggregation can be “the total bookings of all salespeople”, which can be modeled by summing the bookings of each member of the group “salespeople”. Another example of an aggregation can be “the average salary of people in the neighborhood”, which can be modeled as the average of the salary values for each member of the group “people in the neighborhood”. Accordingly, it should also be understood that aggregations can be values other than sums; for example, averages, medians, standard deviations, maximums, and minimums can be aggregations. By contrast, a pure sum has fixed operands with no group involved. An example of a pure sum can be “total costs=operating costs+cost of goods+salaries”, where that calculation will always have three operands. Themodel type2206 can identify whether acorresponding model2204 is an aggregation or pure sum, and this model type can be specified in response to user input when an smart attribute is created, or it could be determined via an automated process that classifies models based on their content (e.g., determining whether a group is present in the model2204).
InFIG.24A,various outcomes1502 are linked to one or moreidea data structures1504. Thus, the resolution of which ideas should be expressed in a given narrative that is generated to satisfy thecommunication goal statement390 will depend on whichoutcomes1502 were deemed true in view of the underlying data. The relationships between ideas for expression in a narrative to the nature of the underlying data in this example can be seen in the table below:
Outcome of
CharacterizingIdeas to be Expressed in the
the Underlying DataNarrative About the Underlying Data
Complex FormulaNarrative should express the following ideas:
The value for the attribute
The names and values of the drivers for the
attribute.
Pure Sum FormulaNarrative should express the following ideas:
(Less than 3 Operands)The value for the attribute
The names and values of the drivers for the
attribute.
Pure Sum FormulaNarrative should express the following ideas:
(3 or More Operands)The value for the attribute
The names and values of the most positive
drivers for the attribute.
The names and values for the most negative
drivers of the attribute.
AggregationNarrative should express the following ideas:
(Decent-Sized Group)The value for the attribute
The names and values of the most positive
drivers for the attribute.
The names and values for the most negative
drivers of the attribute.
AggregationNarrative should express the following ideas:
(Very Small Group)The value for the attribute
The names and values of the drivers for the
attribute.
AggregationNarrative should express the following idea:
(Empty Group)That the group is empty
InfluencersNarrative should express the following ideas:
The value for the attribute
The names and values of the influencers for the
attribute.
Anyideas1504 that are resolved based on the conditional outcome framework could then be inserted into the computedstory outline528 for use by AI504 (together with their associated specifications in view of the underlying data) when rendering the desired narrative.
To the extent that any of theideas1504 need additional computed values in order to be expressed (where such values were not previously computed by analytics2450), the supportinganalytics1506 can further include idea support analytics2452. For example, if theanalytics2450 do not compute or retrieve the names and/or values for the drivers, the idea support analytics2452 can include parameterized logic that computes retrieves or computes such information.
Thus, it can be seen that the example conditional outcome framework for a communication goal statement can define a hierarchical relationship among linked outcomes and ideas together with associated supporting analytics to drive a determination as to which ideas should be expressed in a narrative about a data set, where the selection of ideas for expression in the narrative can vary as a function of the nature of the data set.
In example embodiments, the conditional outcome framework can be designed so that it does not need any input or configuration from a user other than what is used to compose the communication goal statement390 (e.g., for the “Explain a Value” communication goal statement, the system would only need to know the specified attribute and the entity for that attribute plus any applicable timeframe). However, for other example embodiments, a practitioner might want to expose some of the parameters of the conditional outcome framework to users to allow further configurations or adjustments of the conditional outcome framework.
For example, a practitioner might want to implement the thresholds used within the conditional outcome framework as user-defined values. In the context ofFIG.24A, this could involve exposing the thresholds used for characterizing the size of the aggregation group to users so that a user can adjust the group size boundaries in a desired manner (e.g., in some contexts, a large group might have a minimum of 100 members, while in other contexts a large group might have a minimum of 1000 members). Similarly, the thresholds for how many drivers are included in the groups “the most positive drivers” and “the most negative drivers” could be exposed to users to allow adjustments.
As another example, a practitioner might want to provide users with a capability to enable/disable the links betweenoutcomes1502 andideas1504 in a conditional outcome framework. For example, a GUI could present a user with lists of all of theoutcomes1502 andideas1504 that can be tied to a communication goal statement within a conditional outcome framework. The user could then individually select whichideas1504 are to be linked to whichoutcomes1502. If desired by a practitioner, that conditional outcome framework can include default linkages that are presented in the GUI, and the user could make adjustments from there.
FIG.24A shows an example of anarrative2402 that can be generated using the conditional outcome framework ofFIG.24A as applied to acommunication goal statement2400 of “Explain the Profit of the Store in the Month” with respect to a data set such as the ones shown inFIGS.22B and22C, and where the attribute model/model type2204/2206 is a pure sum formula where “Profit=Revenue−Expenses”. In this example, thenarrative2402 would be generated after an analysis of the data set arrived at a determination that theoutcomes2404 were true (the model/model type2204/2206 for “profit” is a pure sum formula with less than 3 operands). As can be seen inFIG.24A, thenarrative text2402 expresses the followingideas2406 that are tied to the outcomes2404: (1) an identification of the value for the store's profit, and (2) the names and values for the store's profit drivers (revenue and expenses).
FIG.24B shows an example of anarrative2412 that can be generated using the conditional outcome framework ofFIGS.24A and24B as applied to acommunication goal statement1810 of “Explain the fixed expenses of the person in the month” with respect to a data set that includes various people and data about their various expenses, and where the attribute model/model type2204/2206 for the “fixed expenses” is a pure sum formula where “fixed expenses=rent+car payment+gas+electricity+internet+cell phone”. In this example, thenarrative2412 would be generated after an analysis of the data set arrived at a determination that theoutcomes2414 were true (the model/model type2204/2206 for “profit” is a pure sum formula with more than 3 operands). As can be seen inFIG.24B, thenarrative text2412 expresses the followingideas2416 that are tied to the outcomes2414: (1) an identification of the value for the person's fixed expenses, (2) the names and values for the person's two largest expense drivers (rent and car payments), and (3) the names and values for the person's most negative drivers (which in this case is an empty set).
FIG.24C shows an example of anarrative2422 that can be generated using the conditional outcome framework ofFIGS.24A-C as applied to acommunication goal statement1810 of “Explain the mpg of the car in the week” with respect to a data set that includes weekly data values miles traveled and gallons consumed by a car, and where the attribute model/model type2204/2206 for the “mpg” is a complex formula where “mpg=miles traveled/gallons consumed”. In this example, thenarrative2422 would be generated after an analysis of the data set arrived at a determination that theoutcomes2424 were true (the model/model type2204/2206 for “mpg” is a complex formula). As can be seen inFIG.24C, thenarrative text2422 expresses the followingideas2426 that are tied to the outcomes2424: (1) an identification of the value for the car's miles per gallon, and (2) the names and values for the car's mpg drivers (miles traveled and gallons consumed).
FIG.24D shows an example of anarrative2432 that can be generated using the conditional outcome framework ofFIGS.24A-D as applied to acommunication goal statement1810 of “Explain the profits of the company in the year” with respect to a data set that includes data that describes the company's profits in various regions, and where the attribute model/model type2204/2206 for “profits” is an aggregation where “profits=sum(profits in each region)”. In this example, thenarrative2432 would be generated after an analysis of the data set arrived at a determination that theoutcomes2434 were true (the model/model type2204/2206 for “profits” is an aggregation with a decent-sized group). As can be seen inFIG.24D, thenarrative text2432 expresses the followingideas2436 that are tied to the outcomes2434: (1) an identification of the value for the company's profits, (2) the names and values for the regions which were the most positive drivers of profit, and (3) regions which were the most negative drivers of profit. In this example, there are two regions in each group (most positive and most negative). As indicated above, this size can be pre-set within the analytics or it can be derived as a function of the data.
FIG.24E shows an example of anarrative2442 that can be generated using the conditional outcome framework ofFIGS.24A-E as applied to acommunication goal statement1810 of “Explain the sales of the store in the quarter” with respect to a data set that includes data that describes various forms of store data, and where the attribute model/model type2204/2206 for “sales” is an influencer model where foot traffic and in-store promotions are a positive influencer of sales and where days with inclement weather is a negative influencer for sales. In this example, thenarrative2442 would be generated after an analysis of the data set arrived at a determination that theoutcomes2444 were true (the model/model type2204/2206 for “sales” is an influencer model). As can be seen inFIG.24E, thenarrative text2442 expresses the followingideas2446 that are tied to the outcomes2444: (1) an identification of the value for the store's sales, and (2) the names and values for the store's sales influencers (foot traffic, in-store promotions, and days of inclement weather).
FIGS.24A-E thus show how the same parameterized conditional outcome framework can be used to generate narrative stories across different content verticals (e.g., a story about store profits as inFIG.24A versus a story about car mileage efficiency as inFIG.24C), which demonstrates how the parameterized conditional outcome framework provides an effective technical solution to the technical problem of horizontal scalability in the NLG arts.
It should be understood that the system can also be designed to support other “explain” communication goals. For example, another base communication goal statement that can be used by the system can be “Explain the Change in (a Value of) an Attribute (of an Entity or Entity Group) (over a Timeframe)” (which can be labeled in shorthand as “Explain a Change in a Value”)”. Such a goal can produce ideas that capture a variety of understandings such as which drivers gained or lost significantly (even if not necessarily the biggest magnitude driver), how main drivers may have changed over time, how the group size of the main drivers may have changed over time, etc.FIG.25A depicts an example of various ideas that can be learned and presented by a narrative generation system with respect to a communication goal of “Explain a Change in Value” with respect to an example data set for store profits and drivers A-F. Accordingly, it should be understood that it may be desirable for the narratives produced in response to the “Explain a Change in a Value” communication goal statement to express different ideas than the narratives produced in response to the “Explain a Value” communication goal statement.
FIG.25B discloses an example embodiment for a conditional outcome framework that can be used by thenarrative analytics510 associated with acommunication goal statement390 for “Explain the change in value” (where the relevant time frame can be either a default timeframe, system-determined time frame, or user-determined time frame. In this example, the framework includesattribute change analytics2550 that compute the changes/deltas in the specified attribute values (including the driver attributes) over the relevant time period. These deltas can then be used by the conditional outcome framework to identify ideas for possible expression in a narrative story. In this example, theattribute change analytics2550 include afirst level2552 ofconditional outcomes1502 relating to changes in value for the subject attribute (store profits) and asecond level2554 of conditional outcomes relating to changes in value for the drivers of the subject attribute. For example, thefirst level2552 can include analytics that determine whether the value of the subject attribute change over the relevant time frame (which may include some thresholding to eliminate insignificant changes in value (e.g., changes of 2% or less could be deemed “no change”). Examples of analytics in thesecond level2554 can include analytics that are configured to (1) determine which driver values changed the most over the relevant time frame, (2) whether any of the drivers were the main drivers of change for the subject attribute and/or drowned out the other drivers, (3) whether the changes in driver values effectively canceled each other out, and (4) whether the mix of significant drivers changed over the relevant time frame.
FIG.25B shows an example of anarrative2502 that can be generated using the conditional outcome framework shown by the upper portion ofFIG.25A as applied to acommunication goal statement390 of “Explain the change in the profit of the store between the previous month and the month” (where the relevant time frame is user-defined as previous month-to-current month) with respect to a data set that includes profits, revenues, and expenses for a store over time, and where the attribute model/model type2204/2206 is a pure sum formula where “Profit=Revenue−Expenses”. In this example, thenarrative2502 would be generated after an analysis of the data set arrived at a determination that theoutcomes2504 were true (the model/model type2204/2206 for “profit” is a pure sum formula, where the store profit changed over the timeframe, and where one driver was the main driver for this change in store profits). As can be seen inFIG.25B, thenarrative text2502 expresses the followingideas2506 that are tied to the outcomes2504: (1) an identification of the value for the store's profit for the first month of the time frame, (2) an identification of the value for the store's profit for the last month of the time frame, (3) an identification of the value of the change in the store profits from the previous month to the current month, (4) an identification of the driver that drove the change in store profits, and (5) a description of the change and change direction for this driver over the timeframe.
FIG.25C shows an example of anarrative2512 that can be generated using the conditional outcome framework shown by the upper portion ofFIGS.25A and25B as applied to acommunication goal statement390 of “Explain the change in profits of the company between last year and this year” (where the relevant time frame is user-defined as previous year-to-current year) with respect to a data set that includes data that describes the company's profits in various regions, and where the attribute model/model type2204/2206 for “profits” is an aggregation where “profits=sum(profits in each region)”. In this example, thenarrative2512 would be generated after an analysis of the data set arrived at a determination that theoutcomes2514 were true (the model/model type2204/2206 for “profit” is an aggregation, where the company profits did not change over the timeframe, and where the changes in various drivers of company profits canceled each other out). As can be seen inFIG.25C, thenarrative text2512 expresses the followingideas2516 that are tied to the outcomes2514: (1) an identification of the value for the company's profits at the end of the timeframe, (2) an identification that the changes in the drivers canceled each other so as to result in no change in profits over the timeframe, (3) an identification of the driver with the biggest positive change in direction (and the values for this change), and (4) an identification of the driver with the biggest negative change in direction (and the values for this change).
FIG.25D shows an example of anarrative2522 that can be generated using the conditional outcome framework shown by the upper portion ofFIGS.25A-C as applied to acommunication goal statement390 of “Explain the change in sales of the store between last week and this week” (where the relevant time frame is user-defined as previous week-to-current week) with respect to a data set that includes data that describes various forms of store data, and where the attribute model/model type2204/2206 for “sales” is an influencer model where foot traffic and in-store promotions are a positive influencer of sales and where days with inclement weather is a negative influencer for sales. In this example, thenarrative2522 would be generated after an analysis of the data set arrived at a determination that theoutcomes2524 were true (the model/model type2204/2206 for “sales” is an influencer model, and where the store sales changed over the timeframe. As can be seen inFIG.25D, thenarrative text2522 expresses the followingideas2526 that are tied to the outcomes2524: (1) an identification of the value for the store's sales for the first week of the time frame, (2) an identification of the value for the store's profit for the last week of the time frame, (3) an identification of the value of the change in the store sales from the previous week to the current week, (4) an identification of the influencer driver with the biggest change in direction in the same direction as the change in store sales (and the values for this change), and (4) an identification of the influencer driver with the biggest change in the opposite direction of the change in store sales (and the values for this change).
Furthermore, it should be understood that the narrative analytics tied to “Explain” communication goals can be executed recursively to analyze and assess thing such as drivers of drivers. For example, as shown inFIGS.26A and26B, one or more of theideas1506 in the conditional outcome framework associated with an “explain” communication goal can include afeedback path2650 for a recursive traversal of the conditional outcome framework using a new communication goal statement that includes one or more attributes from thesubject idea1506 in place of the attribute from the prior pass.FIGS.26A and26B show an example where the system employs two passes through the conditional outcome framework to perform not only driver analysis with respect to the subject attribute, but also a drivers of drivers analysis.
FIG.26A shows an example first pass through such a conditional outcome framework with respect to acommunication goal statement390 of “Explain the change in profits of the company between last year and this year” (where the relevant time frame is user-defined as previous year-to-current year) with respect to a data set that includes data that describes the company's profits in various regions, and where the attribute model/model type2204/2206 for “profits” is an aggregation where “profits=sum(profits in each region)”. In this example, analysis of the data set arrives at a determination that theoutcomes2604 are true (the model/model type2204/2206 for “profit” is an aggregation, where the company profits changed over the timeframe, and where one driver drove this change in company profits). As can be seen inFIG.26A, one of theideas2606 that results from such analysis is an idea that includes a feedback path2650 (the idea for “biggest change in direction of overall change”).
Thus, viafeedback path2650, the system performs a second pass through the conditional outcome framework, as shown inFIG.26B. With this second pass, the communication goal statement that is used is “Explain the change in value of the profit for the Asia region between last year and this year” (where the Asia region's profits serves as the driver of company profits that had the biggest change in the same direction as the overall change for the company's profits). The attribute model/model type2204/2206 for regional profits is an aggregation of profits for each country in the subject region. In this example, after the second pass, the system would conclude thatoutcomes2614 were true (the model/model type2204/2206 for “regional profit” is an aggregation, where the regional profits changed over the timeframe, and where most of the drivers of regional profits changed during the time frame). As can be seen inFIG.26B, thenarrative text2602 expresses the followingideas2606 and2616 that are tied to the outcomes from the first pass and the second pass: (1) an identification of the value for the company's profits at the end of the timeframe, (2) an identification of the value for the company's profits at the start of the timeframe, (3) an identification of the change in the company's profits over the time frame, (4) an identification of the driver with the biggest change in the same direction as the overall change in company's profits (the Asia region profits), (5) an identification of the value for the Asia region's profits at the end of the timeframe, (6) an identification of the Asia region's profits at the start of the timeframe, (7) an identification of the change in the Asia region's profits over the time frame, (8) the average change in profits for the countries in the Asia region over the time frame, and (9) an identification of the countries in the Asia region with the biggest change in profits in the same direction as the overall change in profits for the Asia region (and their corresponding change values).
It should be understood thatFIGS.26A and26B are examples only, and that the recursive nature of the narrative analytics tied to “Explain” communication goals need not be limited to only two passes. For example, the analytics could be configured to recursively analyze drivers so long as further drill downs are available for drivers. As another example, a user-defined input can control the depth of recursiveness. Moreover, the system could define a default level of recursiveness of multiple levels of recursion are available. Also, whileFIGS.26A and B show a recursive conditional outcome framework with respect to an “Explain the Change in Value” communication goal, it should be understood that the conditional outcome frameworks for other “explain” communication goals could also be made recursive (such as the frameworks shown inFIGS.24A-E with respect to the “Explain a Value” communication goal.
Live Story Editing:
Another innovative feature that may be included in a narrative generation platform is an editing feature whereby a user can use a story outline comprising one or more composed communication goal statements and an ontology to generate a narrative story from source data, where the narrative story can be reviewed and edited in a manner that results in automated adjustments to the narrative generation AI. For example, an author using the system in an editing mode can cause the system to generate a test narrative story from the source data using one or more composed communication goal statements and a related ontology. The author can then review the resulting test narrative story to assess whether the story was rendered correctly and whether any edits should be made. As an example, the author may decide that a different expression for an entity would work better in the story than the expression that was chosen by the system (e.g., the author may decide that a characterization expressed as “slow growth” in the narrative story would be better expressed as “sluggish growth”). The user can directly edit the text of the narrative story using text editing techniques (e.g., selecting and deleting the word “slow” and typing in the word “sluggish” in its place). Upon detecting this edit, the system can automatically update theontology320 to modify thesubject characterization object332 by adding “sluggish growth” to the expression(s)364 for that characterization (and optionally removing the “slow growth” expression).
To accomplish this, words in the resultant test narrative story can be linked with the objects fromontology320 that these words express. Further still, sentences and clauses can be associated with the communication goal statements that they serve. In this fashion, direct edits on words, clauses, and sentences by an author on the test narrative story can be traced back to their source ontological objects and communication goal statements.
Another example of an innovative editing capability is when an author chooses to re-order the sentences or paragraphs in the test narrative story. Given that sentences and paragraphs in the test narrative story can be traced back to communication goal statements in the story outline, the act of re-ordering sentences and/or paragraphs can cause the system to automatically re-order the communication goal statements in the story outline in accordance with the editing. Thus, consider a story outline that comprisesCommunication Goal Statement 1 followed byCommunication Goal Statement 2 followed byCommunication Goal Statement 3 that produces a narrative story comprising Sentence 1 (which is linked to Communication Goal Statement 1), followed by Sentence 2 (which is linked to Communication Goal Statement 2), followed by Sentence 3 (which is linked to Communication Goal Statement 3). If the user decides that the story would read better ifSentence 2 came beforeSentence 1, the user can perform this edit in the live story editing mode of the system, and this edit can cause the system to automatically adjust the story outline to compriseCommunication Goal Statement 2 followed byCommunication Goal Statement 1 followed byCommunication Goal Statement 3.
Similarly, if a user edits the narrative story by deleting a sentence, the system can automatically adjust the story outline by deleting the communication goal statement linked to that sentence.
Through the automated changes to theontology320 and/or story outline, the system can be able to quickly adjust its story generation capabilities to reflect the desires of the author. Thus, during a subsequent execution of the story generation process, the system can use the updatedontology320 and/or story outline to control the narrative generation process.
FIGS.256-278 and their supporting description in Appendix A describe aspects of such editing and other review features that can be included in an example embodiment of a narrative generation platform. Appendix A also describes a number of other aspects that may be included in example embodiments of a narrative generation platform.
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.
Appendix A
This appendix describes a user guide for an example embodiment referred to as Quill, and it is organized into the following sections:
A1: Introduction
A1(i): What is Quill?
A1(ii): What is NLG?
A1(iii): How to use this Guide
A2: Getting Started
A2(i): Logging in
    • A2(i)(a): Supported Browsers
    • A2(i)(b): Hosted on-premises
A2(ii): General Structure
    • A2(ii)(a): Creating an Organization
    • A2(ii)(b): Creating Users
A2(iii): Creating Projects
    • A2(iii)(a): Authoring
    • A2(iii)(b): Data Manager
    • A2(iii)(c): Project Administration
      A3: Configure a Story from a Blueprint
A3(i): Configure a Sales Performance Report
    • A3(i)(a): Headline
    • A3(ii)(b): Overview
    • A3(iii)(c): Drivers
    • A3(iv)(d): Adding Data
    • A3 (v)(e): Data Requirements
      A4: Ontology Management
A4(i): Entity Types and Expressions
    • A4(i)(a): Entities Tab
    • A4(i)(b): Creating an Entity Type
A4(ii): Relationships
    • A4(ii)(a): Creating a Relationship
A4(iii): Characterizations
    • A4(iii)(a): Entity Characterizations
    • A4(iii)(b): Assessment Characterizations
A4(iv): Attributes
    • A4(iv)(a): Attribute Values
    • A4(iv)(b): Computed Attributes
      A5: Configure a Story from Scratch
A5(i): The Outline
    • A5(i)(a): Sections
      • A5(i)(a)(1): Renaming a Section
      • A5(i)(a)(2): Deleting a Section
      • A5(i)(a)(3): Moving a Section
    • A5(i)(b): Communication Goals
      • A5(i)(b)(1): Creating a Communication Goal
        • A5(i)(b)(1)(A): Entity Types
        • A5(i)(b)(1)(B): Creating an Entity Type
        • A5(i)(b)(1)(C): Creating a Relationship
        • A5(i)(b)(1)(D): Characterizations
      • A5(i)(b)(2): Deleting a Communication Goal
      • A5(i)(b)(3): Moving a Communication Goal
      • A5(i)(b)(4): Linked Goals
      • A5(i)(b)(5): Related Goals (Subgoals)
      • A5(i)(b)(6): Styling Communication Goals
      • A5(i)(b)(7): Charts
    • A5(i)(c): Data Requirements
      • A5(i)(c)(1): Tabular Data
      • A5(i)(c)(2): Document-Based Data
    • A5(i)(d): Data Formatting
    • A5(i)(e): Data Validation
      A6: Data Management
A6(i): Getting Data Into Quill
    • A6(i)(a): Uploading a File
    • A6(i)(b): Adding a Connection
      A7: Reviewing Your Story
A7(i): Live Story
    • A7(i)(a): Edit Mode
      • A7(i)(a)(1): Entity Expressions
      • A7(i)(a)(2): Characterization Expressions
      • A7(i)(a)(3): Language Guidance
    • A7(i)(b): Review Mode
A7(ii): Logic Trace
A7(iii): Monitoring
A8: Managing Story Versions
A8(i): Drafts and Publishing
A8(ii): Change Log
A9: Writing Stories in Production
A9(i): API
A9(ii): Scheduling
A10: Sharing and Reuse
A11: Terminology
A12: Communication Goal Families
A13: Miscellaneous
A13(i): Supported Chart Types
A13(ii): Supported Document Structures
    • A13(ii)(a): Single Document
    • A13(ii)(b): Nested Documents
    • A13(ii)(c): Unsupported Structures
A13(iii): Styling Rules
A13(iv): Using Multiple Data Views
A13(v): Permission Structure
The following sections can be read in combination withFIGS.27-298 for an understanding of how the example embodiment of Appendix A can be used by users.
A1: Introduction
A1 (i): What is Quill?
Quill is an advanced natural language generation (Advanced NLG) platform that transforms structured data into narratives. It is an intelligent system that starts by understanding what the user wants to communicate and then performs the relevant analysis to highlight what is most interesting and important, identifies and accesses the required data necessary to tell the story, and then delivers the analysis in the most intuitive, personalized, easy-to-consume way possible—a narrative.
Quill is used to automate manual processes related to data analysis and reporting. Its authoring capabilities can be easily integrated into existing platforms, generating narratives to explain insights not obvious in data or visualizations alone.
A1 (ii): What is NLG?
Natural Language Generation (NLG) is a subfield of artificial intelligence (AI) which produces language as output on the basis of data input. Many NLG systems are basic in that they simply translate data into text, with templated approaches that are constrained to communicate one idea per sentence, have limited variability in word choice, and are unable to perform the analytics necessary to identify what is relevant to the individual reader.
Quill is an Advanced NLG platform that does not start with the data but by the user's intent of what they want to communicate. Unlike templated approaches that simply map language onto data, Quill performs complex assessments to characterize events and identify relationships, understands what information is especially relevant, learns about certain domains and utilizes specific analytics and language patterns accordingly, and generates language with the consideration of appropriate sentence length, structure, and word variability. The result is an intelligent narrative that can be produced at significant scale and customized to an audience of one.
A1 (iii): How to use this Guide
Getting Started walks through how to log in to Quill and set up Organizations, Users, and Projects. It also provides an overview of the components of Quill.
Ontology Management is a high-level description of the conceptual elements stories in Quill are based on. This section will help you understand the building blocks of writing a story.
Configuring a Story from Scratch and Configuring a Story from a Blueprint talk through the steps of configuring a story in Quill. Jump to one of these sections if you want to learn the basics of using Quill.
Data Management contains the necessary information for setting up data in Quill, discussing the accepted formats and connections.
Reviewing Your Story discusses the tools available to review, edit, and monitor the stories you configure in Quill.
Managing Story Versions covers publishing stories and tracking changes made to projects.
Writing Stories in Production addresses administrative aspects of story generation, including setting up an API endpoint and scheduling story runs.
Sharing and Reuse goes through how to make components of a particular project available across projects.
Common Troubleshooting offers simple, easy-to-follow steps for dealing with common questions that arise when working in Quill.
The Terminology will help you understand the terminology used in this manual and throughout Quill, while the Communication Goal Families describes the available communication goals and how they relate to each other.
The Miscellaneous section presents an example of a state of Quill functionality.
A2: Getting Started
A2(i): Logging in
A2(i)(a): Supported Browsers
Quill is a web-based application that supports Firefox, versions 32 ESR and up, and all versions of Chrome. Logging in will depend on whether Narrative Science is hosting the application or Quill has been installed on-premises.
A2(i)(b): Hosted On-Premises
For on-premises installations of Quill, if you are an authenticated user, go to your custom URL to access Quill. You will be taken directly to your project dashboard. If you see an authentication error, contact your site administrator to be set up with access to Quill.
A2(ii): General Structure
Quill is made up of Organizations and Projects. An Organization is the base level of access in Quill. It includes Administrators and Members and is how Projects are grouped together. Projects are where narratives are built and edited. They exist within Organizations. Users exist at all levels of Quill, at the Site, Organization, and Project levels. Access privileges can be set on a per User basis and apply differently at the Site, Organization, and Project levels. (For more detail, refer to the Permissions Structure section of the Miscellaneous section.)
A2(ii)(a): Creating an Organization
Creating an Organization is a Site Administrative privilege. At the time that Quill is installed, whether hosted by Narrative Science or on-premises, a Site Administrator is designated. Only a Site Administrator has the ability to create an Organization (seeFIG.27).
Site Administrators can add users, and users can only see the Organizations of which they are members. Site Administrators have access to all Organizations with the View All Dashboards option (seeFIG.28), but Organization Members do not.
Members only see the Organizations they have access to in the Organization dropdown and can toggle between them there (seeFIG.29).
Site Administrators can use the Organization dropdown to switch between Organizations or from the Organizations page. Each Organization will have a dashboard listing Projects and People.
FIG.30 shows where Organization Administrators and Members may create Projects, but only Organization Administrators may create Users. Both Organization Administrators and Members may add Users to Projects and set their permissions. For both Administrators and Members, Quill will show the most recent Organization when first opened.
A2(ii)(b): Creating Users
Only an Administrator (both Site or Organization) may create a User (seeFIG.31). Users can be added to Organizations as Administrators or Members (seeFIG.32).
Administrative privileges cascade through the structure of Quill. (See Permission Structure in the Miscellaneous section for more information.) That is to say, an Administrator at the Organization level has Administrative privileges at the Project level as well. The Project permissions of Members are set at the Project level.
At the Project level, a user can be an Administrator, an Editor, or a Reviewer (seeFIG.33).
An Administrator on a Project has full access, including all aspects of Authoring, sharing, drafts and publishing, and the ability to delete the Project. An Editor has access to Authoring but cannot share, publish and create a new draft, or delete the Project. A Reviewer only has access to Live Story in Review Mode. A user's access to a Project can be edited on the People tab of the Organization dashboard.
A2(iii): Creating Projects
Both Administrators and Members can create Projects from the Organization dashboard (seeFIG.34).
The creator of a Project is by default an Administrator. When creating a new Project, select from the list of blueprint options whether it will be an Employee History, Empty Project, Municipal Expenses, Network Analysis, or a Sales Performance report (seeFIG.35).
This is also where you can access shared components of existing projects which members of an Organization have elected to share for reuse by other Organization members. As shown byFIG.36, you can filter them based on what parts of them have been shared: Outline, Ontology, and Data Sources; Outline and Ontology; and Outline. (Refer to the Sharing and Reuse section for additional information.)
An Empty Project allows the user to configure a Project from the ground up, and a Sales Performance Report provides the framework to configuring a basic version of a sales performance report. A user can be added to a project by clicking the plus symbol within a project (seeFIG.37) and adding them by user name. To add a user to a Project, the user should be a member of the Organization.
You can set Project level permissions using the dropdown menu (seeFIG.38).
You can edit permissions and remove users here as well (seeFIG.39).
Users can also be added to Projects from the People tab of the Organization dashboard (seeFIG.40).
Each Project includes Authoring, a Data Manager, and Admin (seeFIG.41).
Authoring is where the narrative gets built and refined; the Data Manager is where the data for the story is configured; and Project Administration is where Monitoring, the Change Log, API documentation, Project Settings, and Scheduling are located.
A2(iii)(a): Authoring
The main view in Authoring is the Outline, as shown byFIG.42.
The Outline is where the narrative is built. Sections can be added to provide structure and organization to the story (seeFIG.43).
Communication Goals are then added to a Section (seeFIG.44).
Communication Goals are one of the main underpinnings of Quill. They are the primary building blocks a user interacts with to compose a story.
Authoring is also where Entities are managed (seeFIG.45).
An Entity is any primary “object” which has particular Attributes. It can be set to have multiple expressions for language variation within the narrative or have Relationships to other Entities for more complex representations. All of these things comprise an Ontology.
Data Requirements are how the data that supports a story is mapped to the various story elements.
Based on the Communication Goals in the Outline, the Data Requirements tab will specify what data points it needs in order to generate a complete story (seeFIG.46).
Live Story is a means of reviewing and editing a story generated from the Outline.
It has two modes, Review mode and Edit mode. Review mode allows the user to see a complete narrative based on specific data parameters (seeFIG.47). Edit mode allows the user to make changes to the story (seeFIG.48).
Drafts and Publishing are Quill's system of managing versions of your story (seeFIG.49).
This is how you publish your story configurations and keep a published version as read-only in order to request stories through the API or via the Scheduler. Each Project can only have one draft and one published version at a time.
A2(iii)(b): Data Manager
The Data Manager is the interface for adding the database connections or uploading the files that drive the story (seeFIGS.50 and51).
A2(iii)(c): Project Administration
The Project Administration features of Quill are Monitoring, the Change Log, API documentation, Project Settings, and Scheduling. They are located in the Admin section of the Project.
Monitoring allows the user to see the status (success or failure) of generated stories (seeFIG.52). Stories run through the synchronous API or generated in Live Story will be listed here and can be filtered based on certain criteria (e.g. date, user).
The Change Log tracks changes made to the project (seeFIG.53).
Quill supports on-demand story generation through synchronous API access (seeFIG.54).
Project Settings are where you can change the name of the Project and set the project locale (seeFIG.55). This styles any currencies in your Project to the relevant locale (e.g. Japanese Yen).
You can set your story to run at regular intervals in Scheduling (seeFIG.56).
A3: Configure a Story from a Blueprint
The benefit of configuring a story from a project blueprint is the ability to reuse Sections, Communication Goals, Data Views, and Ontology as a starting point. These blueprints are available in the Create Project screen as discussed in the Getting Started section.
A3(i): Configure a Sales Performance Report
Select the Performance Project Blueprint and give your project a name. You can always change this later by going to Admin>Project Settings. After the project is created, you'll be taken to Authoring and presented with an Outline that has a “Headline”, “Overview”, and “Drivers” sections with associated Communication Goals within them (seeFIG.57).
A3(i)(a): Headline
To begin, set the Attributes in the Communication Goal in the Headline. Select “the value” (seeFIG.58) to open a sidebar on the right side of the screen.
Create an Attribute by entering “sales” and clicking “Create “sales” (seeFIG.59).
Then specify “currency” from the list of Attribute types (seeFIG.60).
The next step in Attribute creation is to associate the Attribute with an Entity type. Since there are no existing Entity types in this blank Project, you'll have to create one (seeFIG.61).
Click “an entity or entity group” to bring out the Entity type creation sidebar (seeFIG.62).
Name the Entity type “salesperson” and click to create “salesperson” (seeFIG.63).
Set the base Entity type to Person (seeFIG.64).
Quill will make a guess at the singular and plural expressions of the Entity type. Make corrections as necessary and click “Okay” (seeFIG.65).
There are no designations on the Entity type you created, so click “Okay” to return to the Attribute editing sidebar (seeFIG.66). A designation modifies the Entity type to specify additional context such as relationships to other Entity types or group analysis.
Once an Entity type is created, it will be available for selection throughout the project. Additional Entity expressions can be added in the Entities tab (see Ontology Management).
Next, you'll specify a Timeframe for the Attribute (seeFIG.67).
Click “Timeframe” to create a new Timeframe (seeFIG.68).
Choose Month (seeFIG.69) to complete the creation of the Attribute (seeFIG.70).
Click “the other value” to set another Attribute (seeFIG.71).
Name it “benchmark” (seeFIG.72) and set its type to “currency” (seeFIG.73).
Associate it with the Entity type “salesperson” and set it to be in the “month” Timeframe (seeFIG.74).
Click on the arrow to the left of the Communication Goal in the headline section (seeFIG.75) to expose the list of related goals.
The bottom related goal is the Characterization (seeFIG.76).
Check the box to opt in to the Characterization (seeFIG.77).
Quill has default thresholds to determine the comparative language for each outcome.
Entering different values into the boxes (seeFIG.78), with each value being percentage comparisons calculated against your data view, can change these thresholds (seeFIG.79). As such, these comparisons are done against numerical Attribute Values. If a value is changed to be less than the upper bound or greater than the lower bound of a different outcome, Quill will adjust the values so that there is no overlap.
A3 (ii)(b): Overview
Configure the first Communication Goal in the Overview section (seeFIG.80) using the same steps as for the Communication Goal in the Headline section.
Set the Attribute of the first “Present the value” Communication Goal to be “sales in the month of the salesperson,” and the Attribute of the second “Present the value” Communication Goal to be “benchmark in the month of the salesperson” (seeFIG.81).
Link the two Present Communication Goals by dragging (using the gripper icon on the right side of the Communication Goal that is revealed when you hover your cursor over the Goal—seeFIG.82) “Present the benchmark in the month of the salesperson” to overlap “Present the sales in the month of the salesperson” (seeFIG.83).
A3(iii)(c): Drivers
Step One: Click “the value” in the first Communication Goal in the Drivers section to set the Attribute. Choose computed value in the Attribute creation sidebar and go into the functions tab in order to select “contribution” (seeFIG.84).
Set the Attribute to be “sales” (seeFIGS.85 and86).
Click the first entity and create the new Entity type “sector” of type “Thing” (seeFIG.87).
Add a relationship (seeFIG.88) and set the related entity as “salesperson” (seeFIG.89).
Set the relationship as “managed by” (seeFIGS.90 and91).
Add a group analysis and set the Attribute as “sales” and the Timeframe to “month” (seeFIG.92).
Set the second entity to “salesperson” and the timeframe to “month” (seeFIG.93).
Step Two: Follow the steps as above to complete the second Communication Goal in the Drivers section but set the position from top to be 2 in the group analysis (seeFIGS.94-95).
Step Three: Click into the “Search for a new goal” box and select “Call out the entity” (seeFIG.96).
Set the entity to be “highest ranking sector by sales in the month managed by the “salesperson” (seeFIG.97).
Then move the goal by grabbing the gripper icon on the right side to the first position in the section (seeFIG.98).
Step Four: Create another Call out the entity Communication Goal (seeFIG.99).
Create a new Entity type of “customer” and set the base entity type to “thing” (seeFIG.100).
Add a group analysis and set the Attribute to “sales” and the Timeframe to “month” (seeFIG.101).
Then add a relationship and set the related entity to be “highest ranking sector by sales in the month managed by the salesperson” and choose the relationship “within” (seeFIG.102). Then move it to the third position in the Drivers section, after the first Present goal (seeFIG.103).
Step Five: Create another Call out the entity Communication Goal and set the entity to “second highest ranking sector by sales in the month managed by the salesperson” (seeFIG.104).
And move it to the fourth position in the Drivers section, before the second Present goal (seeFIG.105).
Step Six: Create another Call out the entity Communication Goal. Create a new entity type of customer following Step Four, but set the related entity to be “second highest ranking sector by sales in the month managed by the salesperson” (seeFIG.106).
Step Seven: Finally, create another Call out the entity Goal. Create a new plural Entity type of “regions” and set its type to be “place.” Add a group analysis and set the number from top to “3,” the Attribute to “sales,” and the Timeframe to “month” (seeFIG.107).
Then add a relationship, setting the related Entity type as “salesperson” and the relationship as “managed by” (seeFIG.108).
The completed outline should matchFIGS.109 and110. Quill will update the “Data Requirements” tab with prompts asking for the information necessary to generate the story from that configuration.
A3(iv)(d): Adding Data
In order to complete the Data Requirements for the story, you add a Data Source to the Project. Go the Data Manager section of the Project to add a Data View (seeFIG.111).
Choose to Upload a file and name the Data View (seeFIG.112). Upload the Sales Performance Data csv file that you were provided.
Once Quill has saved the Data View to the Project, you will be presented with the first few rows of the data (seeFIG.113).
A3(v)(e): Data Requirements
The Data Requirements will guide you through a series of questions to fill out the necessary parameters for Narrative Analytics and Communication Goals (seeFIG.114). Go to the Data Requirements tab in Authoring.
See the Data Requirements section of Configure a Story from Scratch for more detail. The completed Data Requirements can appear as shown byFIGS.115-118.
Go to Live Story to see the story (seeFIG.119).
Toggles for “salesperson” (seeFIG.120) and “month” will show you different stories on the performance of an individual Sales Person for a given quarter.
A4: Ontology Management
A4(i): Entity Types and Expressions
Entity types are how Quill knows what to talk about in a Communication Goal. An Entity type is any primary “object” which has particular Attributes. An example is that a Department (entity type) has Expenses (Attribute)—seeFIG.121. An Entity is a specific instance of an Entity type, with data-driven values for each Attribute.
In other words, if you have an Entity type of Department, Quill will express a specific instance of a Department from your data, such as Transportation. Likewise, Expenses will be replaced with the numerical value in your data. Quill also allows you to create Entity and Attribute designations, such as departments managed by the top salesperson or total expenses for the department of transportation (seeFIG.122).
When you generate a story with such designations, Quill replaces them with the appropriate calculated values.
A4(i)(a): Entities Tab
Entity types are managed in the Entities tab (seeFIG.123).
Quill defaults to showing all Entity types, but you can filter to only those that are in the story (seeFIG.124).
Clicking an Entity type tile allows you to view its details and edit it. Here, you can modify or add Entity expressions (seeFIG.125), edit or add Entity characterizations (seeFIG.126), add or edit Attributes associated with the Entity (seeFIG.127), and add Relationships (seeFIG.128).
A4(i)(b): Creating an Entity Type
Entity types can be created from the Entities tab (seeFIG.129) or from the Outline (seeFIG.130).
When you create an Entity type, you select its base Entity type from the options of Person, Place, Thing, or Event (seeFIG.131).
This gives Quill context for how to treat the Entity. In the case of the Person base Entity type, Quill knows to determine gender and supply an appropriate pronoun.
Entity types can have multiple expressions. These are managed in the Entities tab of a project (seeFIG.132).
They can be added either from the Entities tab (seeFIG.133) or from Live Story (seeFIG.134).
To add expressions, open the details for an Entity type (by clicking on “salesperson,” as shown above) and click in the text area next to the plus icon in the sidebar. Type in the expression you want associated with the Entity. You can add expressions for the Specific, Generic Singular, and Generic Plural instances of the Entity by clicking on the arrow dropdown in the sidebar to toggle between the expressions (seeFIG.135).
Attributes can be referenced in Specific entity expressions by setting the attribute name off in brackets. For example, if you would like the last name of the salesperson as an expression, set “last name” off in brackets as shown inFIG.136.
You can also opt into and out of particular expressions. If you have multiple expressions associated with the Entity, Quill will alternate between them at random to add Variability to the language, but you can always uncheck the box to turn the expression off (seeFIG.137) or click on the x icon to remove it completely. You cannot opt out of whichever expression is set as the primary expression, but if you want to make one you've added the primary expression simply click and drag the expression to the top of the list.
A4(ii): Relationships
Entity types can be tied to each other through Relationships. For example, a City contains Departments, and Departments are within a City (seeFIG.138). Relationships are defined and created during Entity type creation in Authoring.
They can also be added to an existing Entity type by editing the Entity type in Authoring.FIG.139 shows how a relationship can be added from the Entity type tile.FIG.140 shows setting the related Entity type, andFIG.141 shows choosing the relationships.
An Entity type can support multiple relationships. For example, Department has a relationship to City: “within cities”; and a relationship to Line Items: “that recorded line items” (seeFIG.142).
A4(ii)(a): Creating a Relationship
If the Relationships already set in Quill do not meet your needs, you can create your own. Type the relationship you want to create in the “search or create” textbox and click “Create new relationship” at the bottom of the sidebar (seeFIG.143).
After that, you will be taken through some steps that tell Quill how the new Relationship is expressed. Enter in the present tense and past tense forms of the Relationship, and Quill automatically populates the noun phrase that describes the relationship between the Entities (seeFIG.144).
Once you complete the steps for both directions of the relationship (seeFIG.145), Quill will apply the relationship to your Entity types and add the relationship to its library. You can use the Relationship again anywhere else in the project.
A4(iii): Characterizations
Characterizations are editorial judgments based on thresholds that determine the language used when certain conditions are met. Characterizations can be set on Entity types directly or when comparing Attributes on an Entity in a Communication Goal.
A4(iii)(a): Entity Characterizations
An Entity characterization allows you to associate descriptive language with an Entity type based on the performance of a particular Attribute. For example, you might want to characterize a Sales Person by her total sales (seeFIG.146).
Click “+Characterization” to create a Characterization (seeFIG.147).
Once you've named and created the Characterization, you'll have to set the expressions for the Default outcome. Click the grey parts of speech to edit the expression in the sidebar (seeFIG.148).
To add an Outcome, click “+Outcome” (seeFIG.149).
Change the Outcome label to describe the outcome. For this example, the Outcome label will be “Star” to reflect an exceptional sales performance. Again, edit the expressions by clicking on the grey parts of speech. In order for the outcome to be triggered under specific conditions, you need to add a Qualification (seeFIG.150).
Click “+Qualification” to set the value to Sales (seeFIG.151) and the comparison as “greater than” (seeFIG.152).
You have a choice for comparing the value to an Attribute or a static value (seeFIG.153).
In this case, choose to keep it a static value and set the value to $10,000 (seeFIG.154).
Follow the same steps to create the lower bound outcome, setting the label as “laggard” and the static value to $1,000 (seeFIG.155).
Once you have defined Characterizations on an Entity, you can include them in your story by using the Present the Characterization of the entity Communication Goal (seeFIG.156).
A4(iii)(b): Assessment Characterizations
To set the characterizations on a comparative Communication Goal, expand the arrow to the left of the Communication Goal (seeFIG.157).
This exposes the list of available subgoals (see section below). At the bottom of this list is a goal to assess the difference between the attributes. Check the box to expose the thresholds applied to the comparison (seeFIG.158).
Quill has default thresholds to determine the comparative language for each outcome. These thresholds can be changed by entering different values into the boxes. If a value is changed to be less than the upper bound or greater than the lower bound of a different outcome, Quill will adjust the values so that there is no overlap (seeFIG.159).
There is also default language to correspond with each of the possible outcomes. This can also be changed to suit your particular needs and the tone of your story. Click on the green, underlined text to open a sidebar to the right where you can add additional expressions and set which expression you would like to be the primary characterization (seeFIG.160).
You can also opt into and out of particular expressions. However, in the example of Appendix A, you cannot opt out of whichever expression is set as the primary characterization. If you have multiple expressions associated with the outcome (seeFIG.161), Quill will alternate between them at random to add Variability to the language. These additional expressions will be tied to the specific Communication Goal where you added them and will not appear for others. You can also opt into and out of particular expressions, as well as delete them using the x. However, in the example of Appendix A, you cannot opt out of whichever expression is set as the primary expression.
These expressions can also be edited in Edit mode in Live Story (seeFIGS.162 and163).
A4(iv): Attributes
An Attribute is a data-driven feature on an Entity type. As described above, Quill will express a specified Attribute with the corresponding value in the data based on your Communication Goal. Quill also supports adding modifiers to attributes in order to perform calculations on the raw value in the data.
A4(iv)(a): Attribute Values
Attribute Values are those values that are taken directly from your data. In other words, no computations are performed on them. An example is the Name of the City. If there is a value in the data for the total expenses of the city, Quill pulls this value directly and performs no computations, unless a data validation rule is applied e.g. “If null, replace with Static Value.” which is set in the Data Requirements when mapping the Outline's information needs to your Data View.FIG.164 shows an attribute creation sidebar.FIG.165 shows creating an attribute value in the attribute creation sidebar.FIG.166 shows setting the type of an attribute in the attribute creation sidebar.FIG.167 shows a completed attribute in a communication goal.
You also have the option of specifying a Timeframe (seeFIGS.168 and169).
This allows you to restrict the window of analysis to a particular day, month, or year.
Create a new Timeframe by selecting one of those three options. Once you've done this, Quill also recognizes the “previous” and “next” instances of that Timeframe (seeFIG.170). In other words, if you create a day Timeframe, Quill will populate the list of known Timeframes with day, along with previous day and next day.
A4(iv)(b): Computed Attributes
On the other hand, if the total expenses of the city are calculated by taking the sum of the expenses for each department, Quill allows you to create a Computed Value. Computed Values allow you to compute new values from values in your data and use them for group analysis.
Computed Values can be aggregations or functions. Aggregations include count, max, mean, median, min, range, total (seeFIG.171).
In the example of Appendix A, current functions are limited to contribution, which evaluates how much of an aggregate a component contributed (seeFIG.172).
Computed Values can be created from Present or Callout Communication Goals. When you create the attribute you are presenting or using to filter the group of Entities, click into the Computed Value tab to access the list of aggregations and functions.
A5: Configure a Story from Scratch
Quill allows you to build a story based on an existing blueprint or entirely from the ground up. To build a story specific to your needs, choose to create a Blank Project Blueprint and name it.
A5(i): The Outline
Once you've created your project, you'll be taken to the Outline (seeFIG.173).
The Outline is a collection of building blocks that define an overall Story. This is where you do the work of building your story.
A5(i)(a): Sections
Create and name Sections to organize your story (seeFIG.174).
Once created, a Section can be renamed, deleted, or moved around within the outline. Sections are how Communication Goals are grouped together.
A5(i)(a)(1): Renaming a Section
Click the name of the Section and type in the new name.
A5(i)(a)(2): Deleting a Section
Hover your cursor over the Section you want to delete. On the right side, two icons will appear: an ellipses and a gripper icon (seeFIG.175).
Click the ellipses to reveal the option to delete the Section (seeFIG.176).
If deleted the Section will disappear from the outline along with any Communication Goals it contains.
A5(i)(a)(3): Moving a Section
As above for deleting a Section, hover your cursor over the Section you want to move. Click and hold the gripper icon (seeFIG.177) to drag the Section where you want to move it and let go.
A5(i)(b): Communication Goals
Communication Goals provide a bridge between analysis of data and the production of concepts expressed as text. In other words, they are the means of expressing your data in language.
A5(i)(b)(1): Creating a Communication Goal
Click the text box where it says to Search for a new goal. Choose the Communication Goal you'd like to use (seeFIG.178).
A5(i)(b)(1)(A): Entity Types
Depending on the Communication Goal you choose, you will have to set the Entity type or types it is talking about. An Entity type is any primary “object” which has particular Attributes. An example is that a Department (Entity type) has Expenses (Attribute). An Entity is a specific instance of an Entity type, with data-driven values for each Attribute.
In the example of the Communication Goal “Call out the entity”, the example embodiment for Quill of Appendix A requires that an Entity type be specified. What, in your data, would you like to call out? Click “the entity” in the Communication Goal to open a sidebar to the right (seeFIG.179).
Here you can select among Entity types that already exist or create a new one. Available entities include entities created from the outline or the entities tab (including any characterizations).
A5(i)(b)(1)(B): Creating an Entity Type
Click “new” in the Entity sidebar (seeFIG.180). Then choose from existing Entity types or create a new one. Set whether the Entity type is singular or plural (seeFIG.181). Once you have created the Entity type, you will be asked to set its base Entity type: Event, Person, Place, or Thing (seeFIG.182). Next, set the plural and singular expressions of the Entity type (seeFIG.183). Quill takes an educated guess at this, but you have the opportunity to make changes. Next you will designate any relationships, group analysis, or qualification pertaining to the Entity type (seeFIG.184).
Quill lets you know the state of an Entity type, whether it is unset, in progress, or valid based on the appearance of the Entity type in the Communication Goal. The Entity type appears grey when unset (seeFIG.185), blue when being worked on (seeFIG.186), and green when valid (seeFIG.187).
Adding a relationship allows you to tell Quill that an Entity is related to another Entity. To do so, choose to Add Relationship as you create your Entity type. Then set or create the Entity type that this Entity has a relationship to (seeFIG.188). Quill suggests a number of relationships from which you can choose, including “lives in”, “managed by”, “within”, and more.FIG.189 shows a list of available relationships between two entities (department and city).FIG.190 shows an entity with a designated relationship. You can also create Relationships that will be added to the library.
When creating an Entity type of the base type event (seeFIG.191), Quill will prompt you to set a timeframe for it to associate the event with (seeFIG.192).
A5(i)(b)(1)(C): Creating a Relationship
If the Relationships already set in Quill do not meet your needs, you can create your own. Type the relationship you want to create in the “search or create” textbox and click “Create new relationship” at the bottom of the sidebar (seeFIG.193).
After that, you will be taken through some steps that tell Quill how the new Relationship is expressed. Enter in the present tense and past tense forms of the Relationship, and Quill automatically populates the noun phrase that describes the relationship between the Entities (seeFIG.194).
Once you complete the steps for both directions of the relationship (seeFIG.195), Quill will apply the relationship to your Entity types and add the relationship to its library (seeFIG.196). You can use the Relationship again anywhere else in the project.
You can also apply Group Analysis to an Entity type (seeFIG.197).
In the example of Appendix A, rank is supported. This allows you to specify which Entity in a list of Entities to use in a Communication Goal. Select whether you are asking for the position from the top or the position from the bottom and the ranking of the Entity you want (seeFIG.198).FIG.199 shows setting the attribute to perform the group analysis by.FIG.200 shows an Entity type with group analysis applied.
You also have the option of specifying a Timeframe (seeFIG.201).
This allows you to restrict the window of analysis to a particular day, month, or year (seeFIG.202).
Create a new Timeframe by selecting one of those three options. Once you've done this, Quill also recognizes the “previous” and “next” instances of that Timeframe (seeFIG.203). In other words, if you create a day Timeframe, Quill will populate the list of known Timeframes with day, along with previous day and next day.
Once you have completed the steps to create an Entity type, Quill adds it to the list of Entity types available for use throughout the story. In other words, you can use it again in other parts of the Outline.
A5(i)(b)(1)(D): Characterizations
Characterizations are editorial judgments based on thresholds that determine the language used when certain conditions are met. Characterizations can be set on Entity types directly or when comparing Attributes on an Entity in a Communication Goal.
Refer to Characterizations in Ontology Management for more information on Entity Characterizations.
To set the characterizations on a comparative Communication Goal, expand the arrow to the left of the Communication Goal (seeFIG.204).
This exposes the list of available subgoals (see section below). At the bottom of this list is a goal to characterize the difference between the attributes. Check the box to expose the thresholds applied to the comparison (seeFIG.205).
Quill has default thresholds to determine the comparative language for each outcome. These thresholds can be changed by entering different values into the boxes. If a value is changed to be less than the upper bound or greater than the lower bound of a different outcome, Quill will adjust the values so that there is no overlap (seeFIGS.206 and207).
There is also default language to correspond with each of the possible outcomes. This can also be changed to suit your particular needs and the tone of your story. Click on the green, underlined text to open a sidebar to the right where you can add additional expressions and set which expression you would like to be the primary expression (seeFIG.208).
If you have multiple expressions associated with the outcome (seeFIG.209), Quill will alternate between them at random to add Variability to the language. These additional expressions will be tied to the specific Communication Goal where you added them and will not appear for others. You can also opt into and out of particular expressions, as well as delete them using the x. However, you cannot opt out of whichever expression is set as the primary expression.
A5(i)(b)(2): Deleting a Communication Goal
To delete a Communication Goal, hover your cursor over it to reveal a trash can icon (seeFIG.210). Click it to delete the Communication Goal.
A5(i)(b)(3): Moving a Communication Goal
Moving a Communication Goal is done the same way as moving a Section. Hover your cursor over the Communication Goal to reveal the gripper icon (seeFIG.211).
Click and move the Communication Goal within the Section or to another section (seeFIG.212). Be careful when you move Communication Goals to make sure there is space between them.
Communication Goals without space between them are Linked Goals, described below.
A5(i)(b)(4): Linked Goals
Quill supports linking Communication Goals. This allows the user to express ideas together. For example, you may wish to talk about the number of departments in a city along with the total budget for the city. Hover your cursor over the Communication Goal to reveal the gripper icon, click and drag it above the goal you wish to link (seeFIG.213). They will always be unlinked by revealing the gripper icon again by hovering, and moving the Communication Goal into an empty space on the Outline.
When you link the Communication Goal that expresses the number of departments and the Communication Goal that expresses the total budget for the city (seeFIG.214), Quill will attempt to express them together with smoother language such as combining them into one sentence with a conjunction.
A5(i)(b)(5): Related Goals (Subgoals)
Some goals support related goals, or subgoals. This allows you to include supporting language without having to create separate Communication Goals for each related idea. For example, if you have a Communication Goal comparing attributes on an entity—in this case, the budget and expenses of the highest ranking department by expenses within the city—you may also wish to present the values of those attributes. Expand the Communication Goal to expose those related goals and opt into them as you like (seeFIG.215).
A5(i)(b)(6): Styling Communication Goals
Quill allows for styling Communication Goals for better presentation in a story. Hover your cursor over a Communication Goal to reveal the “Txt” dropdown on the right side (seeFIG.216).
Here, you can choose whether the language expressed is styled as a headline (seeFIG.217), normal text (seeFIG.218), or bullets (seeFIG.219).
A5(i)(b)(7): Charts
Charts are supported for two Communication Goals: Present the [attribute] of [a group] and Present the [attribute] of a [group of events]. For either of these goals, to get a chart, go to the Txt dropdown and select Chart (seeFIG.220).
This will render the Communication Goal as a chart.
Present the [attribute] of [a group] (seeFIG.221) will result in a bar chart (seeFIG.222).
Present the [attribute] of [a group of events] (seeFIG.223) will result in a line chart (seeFIG.224).
A5(i)(c): Data Requirements
Once you have configured your story, Quill will ask where it can find the data to support the Entity types and Attributes you have specified in the Communication Goals. Go to the Data Requirements tab in Authoring to provide this information (seeFIG.225).
The Data Requirements will guide you through a series of questions to fill out the necessary parameters for Narrative Analytics and Communication Goals. For each question, select the data view where that data can be found and the appropriate column in the table.
A5(i)(c)(1): Tabular Data
FIG.226 shows an example where the data is tabular data.
A5(i)(c)(2): Document-Based Data
FIG.227 shows an example where the data is document-based data.
Where the value supplied is numerical, Quill will provide analytic options for cases where there are multiple values (seeFIG.228). “Sum” sums values in a column like a Pivot Table in a spreadsheet. “Constant” is if the value does not change for a particular entity. For example, the quarter may always be Q4 in the data.
For each Entity type, Quill will ask for an identifier (seeFIG.229).
This is what Quill uses to join data views. An identifier has no validation options as it doesn't actually appear in the story. (Data Validation is discussed below.)
The final question in Data Requirements will be to identify the main Entity the story is about (seeFIG.230).
In the city budget example, Quill needs to know what city the story will be about. This can be set as a static value (e.g. Chicago) or as a Story Variable (seeFIG.231).
A Story Variable allows you to use a set of values to trigger stories. In other words, if your data contains city budget information for multiple cities, setting the city the story is about as a Story Variable will allow you to run multiple stories against the same dataset. The location of the value for the Story Variable is defined earlier in Data Requirements where Quill asks where to find the city.
If there is a Timeframe in the Headline of the story, Quill will need you to identify this in Data Requirements as well.
As with the entity, this can be a static value or a Story Variable. It can also be set as the run date (seeFIG.232), which will tell Quill to populate the value dynamically at the time the story is run. (See the Scheduling section for more information.)
A5(i)(d): Data Formatting
Quill allows you to set the format for certain data points to have in your data source so it can be mapped to your Outline. These formats are set based on the ontology (Entities, Attributes, etc.) being used in your Communication goals, with default styling applied to values. See the Miscellaneous section for specific styling information. As you configure the appropriate data formats present in your data view, validation rules can be applied if the types do not match for a particular story run. For example, if Quill is expecting the expenses of a city to be a currency and receives a string, the user is provided with various options of actions to take. These are specified in the Data Validation section below. To select the format of any date fields you may have, go to the Data Requirements tab in Authoring and click the checkbox icon next to a date (seeFIG.233) to pull out the sidebar (seeFIG.234).
Click on the date value to open a list of date format options and make your selection (seeFIG.235).
A5(i)(e): Data Validation
Quill supports basic data validation. This functionality can be accessed in Data Requirements. Once you specify the location of the information in the data, a checkbox appears next to it. Click this to open the data validation sidebar (seeFIG.236).
You will be presented with a number of options in a dropdown menu for what to do in the case of a null value (seeFIG.237).
You can tell Quill to fail the story, drop the row with the null value, replace the null value with a value you provide in the text box below, or ignore the null value.
A6: Data Management
Quill allows for self-service data management. It provides everything you need to upload files and connect to databases and API endpoints.
A6(i): Getting Data Into Quill
Quill supports data in tabular or document-based formats. Tabular data can be provided to Quill as CSV files or through table selections made against SQL connections (PostgreSQL, Mysql, and Microsoft SQL Server are supported). Document-based data can be provided by uploading a JSON file, creating cypher queries against Neo4j databases, a MongoDB connection, or through an HTTP API connection (which you can also set to elect to return a CSV).
A6(i)(a): Uploading a File
You can upload a CSV or JSON file directly to Quill in the Data Manager. In the Views tab, choose to Upload a file from the Add a Data View tile (seeFIG.238).
Provide the name of the view and upload the file. The amount of time it will take to upload a file depends on the size of the file for a maximum file size of 50 MB, and operating against a data base connection is recommended. This automatically populates the Source Name.FIG.239 shows an example where a CSV file is uploaded.FIG.242 shows an example where a JSON file is uploaded. You can edit the Source Name, which is helpful when file names are difficult to parse and for readability when selecting the file from the Live Story dropdown when previewing your story. Quill automatically detects whether the data is in tabular or document form and samples a view of the first few rows or lines of data.FIG.240 shows an example of uploaded tabular data, andFIG.241 shows a sample view of tabular data.FIG.243 shows an example of uploaded document-based data, andFIG.244 shows a sample view of document-based data.
Quill also supports uploading multiple data sources into one Data View. This functionality can be accessed in the Data View by clicking the three dots icon (seeFIG.245).
Here, you can upload additional files or add additional connections (seeFIG.246). If you have multiple data sources in a Data View, you can set a source as primary, edit, or delete it. New data files or tables can be added to an existing data view, but only tabular sources can be added to tabular views and document-based sources to document-based views. To make the newly uploaded source your primary dataset, click on the three dots icon and select it as primary. This makes it the file used during runtime story generation requests or Live Story previews.
A6(i)(b): Adding a Connection
You can also provide data to Quill by connecting to a SQL database, a cypher query against a Neo4j database, a MongoDB database, or an HTTP API endpoint. You can add a connection from the Data View tab by choosing Start from Connection from the Add a Data View tile (seeFIGS.247 and248) or by choosing to Add a Connection from the Connections tab (seeFIG.249).
Quill will ask for the appropriate information to set up each type of connection.FIG.250 shows an example of credentials for a SQL database connection.FIG.251 shows an example of credentials for a Neo4j database connection.FIG.252 shows an example of credentials for a MongoDB database connection.FIG.253 shows an example of credentials for an HTTP API connection.
The connection will be made, subject to network latency and the availability of the data source. Data Views from connections are made from the Views tab. Choose Start from a Connection and select the connection you created (seeFIG.254).
Quill will prompt you to specify the table to add the data source. For neo4j connections, you will have to put in a cypher query to transform the data into tabular form (seeFIG.255). From there, Data Requirements can be satisfied using the same experience as tabular and document-based views allowing for type validation rules to be set as needed.
A7: Reviewing Your Story
Once you have configured your story with Sections and Communication Goals, and satisfied the Data Requirements against a data source, you can review or edit its contents, understand the logic Quill used to arrive at the story, and monitor the status of stories you run.
A7(i): Live Story
Live Story is where you can see the narrative expression of the story you configured in the Outline (seeFIG.256).
If you have set up your story to be based on Story Variables (as opposed to a static value), you can toggle between them (seeFIG.257) and see how the narrative changes.
You can also switch between data sources (seeFIG.258).
Click the “rewrite” button to generate a new narrative to see how any additional expressions you have added affect the Variability of the story (seeFIG.259).
Live Story has two modes: Edit and Review.
A7(i)(a): Edit Mode
Edit mode allows you to make changes to the language in your story (seeFIG.260).
A7(i)(a)(1): Entity Expressions
You can add Entity expressions from Live Story (in addition to the Entities tab). If you click on any Entity (highlighted in blue under the cursor) (seeFIG.261), a sidebar will open on the right side (seeFIG.262).
You can add Entity expressions by typing in the area next to the plus sign. You can also opt into and out of particular expressions. If you have multiple expressions associated with the Entity, Quill will alternate between them at random to add Variability to the language. Click the rewrite button to see how your story changes. As described in the Ontology Management section, you can also click, hold, and drag an expression to the top of the list and opt out of the additional expressions to set it as primary.
A7(i)(a)(2): Characterization Expressions
You can edit the expressions in any Characterizations you have set on Compare Communication Goals from Edit mode in Live Story. As with Entity expressions, Characterization expressions will be highlighted in blue when you move the cursor over them (seeFIG.263).
Click on the expression to open a sidebar to the right where you can add additional expressions and set which expression you would like to be the primary expression (seeFIG.264).
Quill will alternate between them at random to add Variability to the language. These additional expressions will be tied to the specific Communication Goal where you added them and will not appear for others. You can also opt into and out of particular expressions, as well as delete them using the x. However, you cannot opt out of whichever expression is set as the primary expression. See Assessment Characterizations in Ontology Management for more detail.
A7(i)(a)(3): Language Guidance
You can add set Language Preferences, such as word order choice, to your story in the Edit mode of Live Story using Language Guidance. Hover over a section (sections correspond to Sections in the Outline) of the story to reveal a Quill icon on the right side (seeFIG.265).
Click it to isolate the section from the rest of the story (seeFIG.266).
Click on a sentence to expose any additional expressions you can opt into (seeFIG.267).
Quill generates expressions using language patterns appropriate to the Communication Goal, so the number of additional expressions will vary and not all sentences will have additional expressions. Quill will alternate between them at random to give your story more language variation.
A7(i)(b): Review Mode
Project Reviewers have access to this aspect of Authoring. In review mode (seeFIG.268), you can read stories and switch datasets to see how they affect the story. You can also see if there are any errors in the story with Quill's logic trace (discussed below).
A7(ii): Logic Trace
Quill allows you to see the steps it takes to express Communication Goals as a story. If you click on any sentence in the story in Live Story in Review mode, Quill will show the underlying Communication Goal or Goals (seeFIG.269).
Expand the arrow on the left of the Goal to see the steps Quill took to retrieve data based on the Communication Goal and Data Requirements (seeFIG.270).
In this case, it created a Timeframe and an Entity Type. Then it “shows its work” of pulling the Attribute Value of “sales” constrained by the Timeframe of “month” and associated with the Entity Type “Salesperson 1.”
The Logic Trace can also be downloaded as a JSON file from the Monitoring tab in Admin (seeFIG.271).
A7(iii): Monitoring
You can monitor the status of any stories you run, whether they were written in Live Story or generated through API requests in the Monitoring tab in Admin. Here, you can see whether stories succeeded or failed, and filter for specific stories using the available filters below (seeFIG.272).
Use the Newer and Older buttons to scroll through the stories (seeFIG.273), and use the arrows on the column headers to set search criteria. You can filter by story status (seeFIG.274), when the story completed writing (seeFIG.275), the user who requested the story (seeFIG.276), a run type for the story (seeFIG.277), and a version for the story (seeFIG.278).
A8: Managing Story Versions
Quill supports creating and keeping track of changes to and versions of the stories you configure.
A8(i): Drafts and Publishing
Once you have configured your story and are satisfied with its expression in Live Story, you can Publish the draft of your story (seeFIG.279).
Once Published, your story will go live and that version will be the one that Quill uses when stories are requested through an API connection. After a draft has been Published, any changes you wish to make to the Project should be made after creating a new draft (seeFIG.280).
Once a new draft has been created, it can be deleted. You can also switch to the Published version if you want to abandon the changes you have made in the new draft. The drafts and publishing dropdown is also where you can save the Project as a blueprint to share with others in the Organization (seeFIG.281). This is discussed in Sharing.
Project Administrators are the only ones with draft creation and publishing privileges. While Editors may make changes to active drafts, they cannot publish them or create new ones. Reviewers only have access to review mode in Live Story and cannot create, make changes to, or publish drafts.
A8(ii): Change Log
Quill tracks configuration changes made within a Project. Anytime a user makes a change or adds a new element to a Project, it's noted in the Change Log. The Change Log can be accessed in the Admin section of Quill (seeFIG.282).
Here, you can see a list of all changes in the Project, the users that made the changes, the date and time the changes were made, and the version of the project the changes were made to. As with Monitoring, you can page through the list of changes by clicking on the Newer and Older buttons (seeFIG.283).
The Time, User, and Version information can be used to filter the list by using the drop-downs next to the column headers.FIG.284 shows an example dropdown to filter by time.FIG.285 shows an example dropdown to filter by user.FIG.286 shows an example dropdown to filter by version.
You can also download the changes made as a CSV (seeFIG.287) in order to plot the Project activity or aggregate it for purposes of visualization or archiving.
A9: Writing Stories in Production
A9(i): API
Quill supports on-demand story generation by connecting to an API. The documentation can be accessed from Admin.
API request samples are available in the API Documentation tab of the Admin section of Authoring (seeFIG.288). These samples are based on the project Outline configuration and available data source connections. Parameters and output formatting can be set here so that stories can be requested to meet specific data requirements from an outside application.
The Request Builder allows the user to select the dataset, set the format (Plain Text, HTML, JSON, or Word) of the output, and choose the syntax of the request sample (seeFIG.289).
An external application can use the sample to post requests to the API to generate stories from Quill once the text in red has been replaced with its specific variables (seeFIG.290).
Each Quill user will be able to request a certificate and key from their system administrator.
A9(ii): Scheduling
Stories can also be run on a schedule (seeFIG.291).
Once Scheduling is enabled (seeFIG.292), stories can be run at scheduled intervals (seeFIG.293) beginning at a specific date and time. The run can be ended at a specific time or continue indefinitely. Additionally, you can set the format of the story to Plain Text, HTML, or JSON (seeFIG.294), which can then be retrieved for viewing from the Monitoring page. Published Project schedules are un-editable at this time. To edit the schedule, create a new draft and update as needed.
A10: Sharing and Reuse
Projects can be shared with other users. The Draft dropdown menu includes an option to Save as Blueprint (seeFIG.295).
Here, you can give the shared version of the Project a name and description (seeFIG.296).
You can also specify how much of the Project you make available for sharing. You can include the Outline, Ontology (Entities), and Data Sources, the Outline and Ontology, or just the Outline (seeFIG.297).
Projects that have been saved as blueprints can be accessed when choosing a blueprint. Quill defaults to including all shared projects, but you can filter blueprints based on what elements they include (Outline, Ontology, Data Sources) (seeFIG.298).
All: Terminology
The following provides a glossary for various terms used in connection with describing the example embodiment of Appendix A.
An Organization is a collection of Projects managed by an Administrator. Members of an Organization have access to those Projects within it that they have permissions for. Outlines are collections of building blocks that define an overall Story.
Communication Goals provide a bridge between analysis of data and the production of concepts expressed as text.
Narrative Analytics generate the information needed by Communication Goals to generate stories.
Projects are where stories are configured. A Project includes Authoring, the Data Manager, and Admin.
Project Blueprints are templates comprised of an Outline, specific story sections, and collections of Communication Goals.
An Ontology is a collection of Entity Types and Attributes, along with their expressions, that powers how Quill expresses your story.
An Entity Type is any primary “object” which has particular Attributes. An example is that a Sales Person (entity) has Sales (attribute). Relationships provide context for entities within a story.
Every Entity Type has a Base Entity Type that identifies to Quill whether it is a Person, Place, Thing, or Event.
Computed Values are a way of reducing a list of values into a representative value. The currently available aggregations are count, maximum, mean, median, minimum, and total, and the currently available function is contribution.
Characterizations are editorial judgments based on thresholds that determine the language used in communication goals when certain conditions are met.
Expressions are the various words Quill uses to express a particular concept generated by the combination of executing Narrative Analytics and Story Elements.
A Timeframe is a unit of time used as a parameter to constrain the values included in the expression of a Communication Goal or story.
Variability is variation in the language of a story. Variability is provided through having multiple Entity and Characterization expressions as well as option into additional sentence expressions through Language Guidance.
Authoring includes the Outline, Data Requirements, and Live Story. This is where you configure Communication Goals, map Entity Types and Attributes to values in the data, and review generated stories.
Data Requirements are how a user tells Quill the method by which we will satisfy a Communication Goal's data requirements. These are what a Narrative Analytic and Communication Goal need to be able to express a concept. These are satisfied either directly by configuration of the data requirements or through the execution of Narrative Analytics.
A Story Variable is the focus of a story supplied at runtime as a value from a data source (as opposed to a static value).
A Draft is an editable version of the story in a Project. Project Administrators and Editors have the ability to make changes to Drafts. Project Administrators can publish Drafts and create new ones.
The Data Manager is the part of the Project where Data Views and Data Sources backing the story are managed. This is where files are uploaded and database connections are added.
A Data View is a used by Quill to map the Outline's information needs against Data Sources. A Project can be backed by multiple Data Views that are mapped using Identifiers in the schemas.
A Data Source is a file or table in a database used to support the Narrative Analytics and generation of a story.
Admin allows you to manage all aspects of story generation other than language and data. This is where Monitoring, the Change Log, API Documentation, Project Settings, and Scheduling are located.
A12: Communication Goal Families
The example embodiment of Appendix A supports three communication goal families: Present, Callout, and Compare.
Present
The Present goal family is used to express an attribute of a particular entity or group of entities.
Most Present goal statements have the form “Present the attribute (or computed value) of the specified entity/group.” For example:
    • Present the price of the car.
    • Present the price of the highest ranked by reviews item.
    • Present the average value of the deals made by the salesperson.
The two exceptions to this form are when the Count or Contribution computed values are used, in which case the statements look like this:
    • Present the count of the group.
    • E.g. Present the count of the franchises in the region.
    • Present the attribute contribution of the entity to the parent entity.
    • E.g. Present the point contribution of the player to the team.
Callout
The Callout goal family is used to identify the entity or group of entities that has some editorially-interesting position, role, or characteristics. E.g. the highest ranked salesperson, franchises with more than $1k in daily sales, players on the winning team, etc. Every Callout goal statement has the same structure: “Callout the specified entity/group.” For example:
    • Callout the highest ranked by sales salesperson.
    • Call out the franchises with more than 1,000 in daily sales.
    • Callout the players on the winning team.
Compare
The Compare goal is used to compare the values of two attributes on the same entity. Every Compare goal has the same structure: Compare the first attribute of the specified entity to the second attribute. For example:
    • Compare the sales of the salesperson to the benchmark.
    • Compare the final value of the deal to the expected value.
    • Compare the revenue of the business to the expenses.
      A13: Miscellaneous
A13(i): Charts
Quill is able to express certain configured goals as Charts, such as Bar and Line. These have default styling and colors and are guided by the Communication Goal's Narrative Analytics. Charts are supported in each available output format.
A13(ii): Supported Document Structures
Generally, Quill supports documents that are homogenous (uniformly structured) with stable keys. Example permutations of supported structures are described below.
A13(ii)(a): Single Document
In this example, as long as all documents contain the same keys (in this case, “a”, “b”, and “c”) Quill can use this data structure.
{
“a”: 1,
“b”: 2,
“c”: 3
}
A13(ii)(b): Nested Documents
Documents with other documents nested within them are supported, though the nested documents must be homogenous with stable keys across documents.
A first example is:
{
“a”: {
    • “aa”: 1,
    • “ab”: 2
      },
“b”: {
    • “ba”: 3,
    • “bb”: 4
}
}
A second example is:
[
{
“a”: 1
“b”: [
    • {
      • “ba”: 11,
      • “bb”: 12
    • },
      • “ba”: 20,
      • “bb”: 44
    • }
]
}
]
A13(ii)(c): Unsupported Structures
The example embodiment of Appendix A does not support heterogeneous documents (non-uniform) or documents where values are used as keys.
{
“1/1/1900”:{“45”,
“1/2/1900”: “99”,
“1/3/1900”: “300”
A13(iii): Styling Rules
Oxford Commas
Quill does not use Oxford commas. So it writes like “Mary spoke with Tom, Dick and Harry” and not like “Mary spoke with Tom, Dick, and Harry.”
Spaces Between Sentences
Quill puts one space between sentences.
Dates
Year: Datetimes that are just years are expressed numerically.
2016→“2016”
1900→“1900”
Month and Year: Datetimes that are just months and years have written out months and numeric years.
2016-03→“March 2016”
2015-11→“November 2015”
Day, Month, and Year: Datetimes that are full dates are written out months with numeric days and years.
2016-03-25→“Mar. 25, 2016”
2015-11-05→“Nov. 5, 2015”
Percents
Percents are rounded to two places, trailing zeros are removed, and a “%” is appended.
53.2593→“53.26%”
53.003→“53%”
Ordinals
Ordinals are written with numerical contractions.
1→“1st”
2→“2nd”
3→“3rd”
556→“556th”
Decimals
Decimals are written out with decimal parts and commas inserted.
1.1→“1.1”
1.9→“1.9”
123456789→“123,456,789”
Currencies
Currencies are currently assumed to be USD. In the future, they can be locale-specific (e.g. Euros). They're styled differently based on how big they are.
Less than One Thousand
Rounds to two decimal places. There are always two decimal places.
3→“$3.00”
399.9999→“$400.00”
Less than Ten Thousand
Rounds to an integer.
5000.123→“$5,000”
4171→“$4,171”
Less than One Million
Rounds to thousands with zero decimal places, appends a “K”
500,000→“500K”
123,456.789→“123K”
Less than One Billion
Rounds to millions with one decimal place if necessary, appends an “M”
500,000,000→“500M”
500,100,000.12→“500.1M”
Less than One Trillion
Rounds to billions with two decimal places if necessary, appends an “M”
500,000,000,000→“500B”
500,100,000,000.12→“500.1B”
500,130,000,000.12→“500.13B”
Supported Datetime Formats
The following datetime formats are supported in Quill.
01/31/15
01/31/2015
31 Jan. 2015
Jan. 31, 2015
Tuesday, Jan. 31, 2015
Tuesday, Jan. 31, 2015, 01:30 AM
2015-01-31T01:30:00-0600
20150131
2015-01-31 13:30:00
01-31-2015 01:30:45
31-01-2015 01:30:45
1/31/2015 1:30:45
01/31/2015 01:30:45 AM
31/01/2015 01:30:45
2015/01/31 01:30:45
A13(iv): Using Multiple Data Views
Users can satisfy their outline's data requirements using multiple data views. While it may often be more straightforward to create a de-normalized view in the source database, the following use cases are supported. These apply to both tabular and document-based data sources.
Single Entity Type, Attribute Lookup by Entity ID
Quill can return the Gender fromData View 2 associated with the Sales Person's ID inData View 1 using the Sales Person ID.
Data View 1
Sales Person IDSales Person Name
123Aaron Young
456Daisy Bailey
Data View 2
Sales Person IDGender
123Male
456Female
Two Entity Types
Quill can match the Transactions inData View 2 to the Sales People inData View 1 by Sales Person ID.
Data View 1
Sales Person IDSales Person Name
123Aaron Young
456Daisy Bailey
Data View 2
Transaction IDAmountSales Person ID
777$100.00123
888$70.00 456
999$20.00 123
A13(v): Permission Structure
Quill Access
CreateCreateAPICreate
RoleOrganizationsUsersTokenProjects
SiteXXXX
Administrator
OrganizationXXX
Administrator
OrganizationXX
Member
Project Access
Create andLive Story:
AddEditLive Story:PublishReview
RoleUsersStoryEdit ModeDraftsMode
AdministratorXXXXX
EditorXXX
ReviewerX

Claims (58)

What is claimed is:
1. A method of applying artificial intelligence to generate a narrative from structured data according to a narrative generation process, the structured data comprising a plurality of data values associated with a plurality of data parameters, the method comprising:
a processor processing a communication goal statement in coordination with a conditional outcome framework that conditionally specifies which of a plurality of ideas are to be expressed in narratives generated according to the narrative generation process, wherein the processing includes parameterizing the conditional outcome framework based on a plurality of the data parameters; and
a processor generating a narrative about the structured data in accordance with the parameterized conditional outcome framework, wherein the narrative comprises natural language narrative text that expresses an idea conditionally specified by the conditional outcome framework so that the narrative satisfies a communication goal associated with the communication goal statement;
wherein the communication goal statement corresponds to at least one of (1) a communication goal for explaining a value of a specified attribute with respect to an entity and/or (2) a communication goal for explaining a change in value of the specified attribute with respect to the entity; and
wherein the conditional outcome framework conditionally specifies the ideas to support generation of the narrative so that the narrative explains the value and/or change in value of the specified attribute in terms of one or more drivers and/or influencers for the specified attribute.
2. The method ofclaim 1 wherein the processing step further includes:
a processor selecting a conditional outcome framework from among a plurality of conditional outcome frameworks based on the communication goal statement.
3. The method ofclaim 1 wherein the communication goal statement corresponds to the communication goal for explaining a value of a specified attribute with respect to an entity.
4. The method ofclaim 1 wherein the specified attribute is associated with a model that identifies the one or more drivers and/or influencers for the specified attribute, the method further comprising the processor accessing the model to identify the one or more drivers and/or influencers to be included in the narrative that explains the value and/or change in value of the specified attribute in terms of its one or more drivers and/or influencers.
5. The method ofclaim 1 wherein the parameterizing step comprises mapping a plurality of the data parameters to a plurality of conditions associated with the conditional outcome framework, and wherein the processing step further comprises testing a plurality of the data values associated with the mapped data parameters against the conditions to identify the idea to be expressed in the narrative.
6. The method ofclaim 5 wherein the testing step comprises testing the data values associated with the mapped data parameters against the conditions to identify a plurality of ideas to be expressed in the narrative.
7. The method ofclaim 1 wherein the conditional outcome framework comprises a plurality of conditional outcome data structures, wherein each conditional outcome data structure is associated with at least one condition, wherein a plurality of the conditional outcome data structures are linked with a plurality of idea data structures, each idea data structure representing an idea to be expressed in a narrative;
wherein the processing step further includes a processor (1) determining which conditional outcome data structure is applicable to the structured data based on the conditions associated with the conditional outcome data structures and (2) selecting an idea data structure that is linked with the determined conditional outcome data structure; and
wherein the generating step includes a processor expressing the idea represented by the selected idea data structure in the natural language narrative text.
8. The method ofclaim 7 wherein the conditional outcome framework comprises a plurality of the conditional outcome data structures arranged in a hierarchical relationship where at least one conditional outcome data structure is associated with a plurality of additional conditional outcome data structures.
9. The method ofclaim 7 further comprising:
a processor adjusting at least one link between an idea data structure and a conditional outcome data structure in response to an input.
10. The method ofclaim 7 further comprising:
a processor adjusting at least one of the conditions associated with a conditional outcome data structure in response to an input.
11. The method ofclaim 1 wherein the communication goal statement corresponds to the communication goal for explaining a change in value of a specified attribute with respect to an entity.
12. The method ofclaim 11 wherein the conditional outcome framework comprises a plurality of conditional outcome data structures corresponding to different categorizations of attribute models to support an analysis of one or more drivers and/or influencers for the specified attribute.
13. The method ofclaim 12 wherein the conditional outcome framework is associated with narrative analytics that are configured to analyze changes in values for the specified attribute over a specified time frame.
14. The method ofclaim 12 wherein the conditional outcome framework is associated with narrative analytics that are configured to analyze changes in values for the one or more drivers over a specified time frame.
15. The method ofclaim 1 wherein the communication goal statement is associated with a plurality of attribute structures, each attribute structure corresponding to an attribute of an entity and specifying a model for its corresponding attribute.
16. The method ofclaim 15 wherein the conditional outcome framework comprises a plurality of conditional outcome data structures corresponding to different categorizations of attribute models to support an analysis of one or more drivers and/or influencers for the specified attribute.
17. The method ofclaim 16 wherein the categorizations include a quantitative model and a qualitative model.
18. The method ofclaim 17 wherein the quantitive model comprises a formula model type and an aggregation model type.
19. The method ofclaim 17 wherein the qualitative model comprises an influencer model type.
20. A computer program product for applying artificial intelligence to generate a narrative from structured data according to a narrative generation process, the structured data comprising a plurality of data values associated with a plurality of data parameters, the computer program product comprising:
code resident on a non-transitory computer-readable storage medium that is executable by a processor to a cause the processor to:
process a communication goal statement in coordination with a conditional outcome framework that conditionally specifies which of a plurality of ideas are to be expressed in narratives generated according to the narrative generation process, wherein the process operation includes parameterizing the conditional outcome framework based on a plurality of the data parameters; and
generate a narrative about the structured data in accordance with the parameterized conditional outcome framework, wherein the narrative comprises natural language narrative text that expresses an idea conditionally specified by the conditional outcome framework so that the narrative satisfies a communication goal associated with the communication goal statement;
wherein the communication goal statement corresponds to at least one of (1) a communication goal for explaining a value of a specified attribute with respect to an entity and/or (2) a communication goal for explaining a change in value of the specified attribute with respect to the entity; and
wherein the conditional outcome framework conditionally specifies the ideas to support generation of the narrative so that the narrative explains the value and/or change in value of the specified attribute in terms of one or more drivers and/or influencers for the specified attribute.
21. The computer program product ofclaim 20 wherein the code is further configured upon execution to cause the processor to:
select a conditional outcome framework from among a plurality of conditional outcome frameworks based on the communication goal statement.
22. The computer program product ofclaim 20 wherein the communication goal statement corresponds to the communication goal for explaining a value of a specified attribute with respect to an entity.
23. The computer program product ofclaim 20 wherein the specified attribute is associated with a model that identifies the one or more drivers and/or influencers for the specified attribute, and wherein the code is further configured upon execution by the processor to cause the processor to access the model to identify the one or more drivers and/or influencers to be included in the narrative that explains the value and/or change in value of the specified attribute in terms of its one or more drivers and/or influencers.
24. The computer program product ofclaim 20 wherein the code is further configured upon execution to cause the processor to:
map a plurality of the data parameters to a plurality of conditions associated with the conditional outcome framework; and
test a plurality of the data values associated with the mapped data parameters against the conditions to identify the idea to be expressed in the narrative.
25. The computer program product ofclaim 24 wherein the code is further configured upon execution to cause the processor to:
test the data values associated with the mapped data parameters against the conditions to identify a plurality of ideas to be expressed in the narrative.
26. The computer program product ofclaim 20 wherein the conditional outcome framework comprises a plurality of conditional outcome data structures, wherein each conditional outcome data structure is associated with at least one condition, wherein a plurality of the conditional outcome data structures are linked with a plurality of idea data structures, each idea data structure representing an idea to be expressed in a narrative;
wherein the code is further configured upon execution to cause the processor to:
determine which conditional outcome data structure is applicable to the structured data based on the conditions associated with the conditional outcome data structures;
select an idea data structure that is linked with the determined conditional outcome data structure; and
express the idea represented by the selected idea data structure in the natural language narrative text.
27. The computer program product ofclaim 26 wherein the conditional outcome framework comprises a plurality of the conditional outcome data structures arranged in a hierarchical relationship where at least one conditional outcome data structure is associated with a plurality of additional conditional outcome data structures.
28. The computer program product ofclaim 26 wherein the code is further configured upon execution to cause the processor to:
adjust at least one link between an idea data structure and a conditional outcome data structure in response to an input.
29. The computer program product ofclaim 26 wherein the code is further configured upon execution to cause the processor to:
adjust at least one of the conditions associated with a conditional outcome data structure in response to an input.
30. The computer program product ofclaim 20 wherein the communication goal statement corresponds to the communication goal for explaining a change in value of a specified attribute with respect to an entity.
31. The computer program product ofclaim 30 wherein the conditional outcome framework comprises a plurality of conditional outcome data structures corresponding to different categorizations of attribute models to support an analysis of one or more drivers and/or influencers for the specified attribute.
32. The computer program product ofclaim 31 wherein the conditional outcome framework is associated with narrative analytics that are configured to analyze changes in values for the specified attribute over a specified time frame.
33. The computer program product ofclaim 31 wherein the conditional outcome framework is associated with narrative analytics that are configured to analyze changes in values for the one or more drivers over a specified time frame.
34. The computer program product ofclaim 20 wherein the communication goal statement is associated with a plurality of attribute structures, each attribute structure corresponding to an attribute of an entity and specifying a model for its corresponding attribute.
35. The computer program product ofclaim 34 wherein the conditional outcome framework comprises a plurality of conditional outcome data structures corresponding to different categorizations of attribute models to support an analysis of one or more drivers and/or influencers for the specified attribute.
36. The computer program product ofclaim 35 wherein the categorizations include a quantitative model and a qualitative model.
37. The computer program product ofclaim 36 wherein the quantitive model comprises a formula model type and an aggregation model type.
38. The computer program product ofclaim 36 wherein the qualitative model comprises an influencer model type.
39. An apparatus for applying artificial intelligence to generate a narrative from structured data according to a narrative generation process, the structured data comprising a plurality of data values associated with a plurality of data parameters, the apparatus comprising:
a processor configured to (1) process a communication goal statement in coordination with a conditional outcome framework that conditionally specifies which of a plurality of ideas are to be expressed in narratives generated according to the narrative generation process, wherein the process operation includes parameterizing the conditional outcome framework based on a plurality of the data parameters and (2) generate a narrative about the structured data in accordance with the parameterized conditional outcome framework, wherein the narrative comprises natural language narrative text that expresses an idea conditionally specified by the conditional outcome framework so that the narrative satisfies a communication goal associated with the communication goal statement;
wherein the communication goal statement corresponds to at least one of (1) a communication goal for explaining a value of a specified attribute with respect to an entity and/or (2) a communication goal for explaining a change in value of the specified attribute with respect to the entity; and
wherein the conditional outcome framework conditionally specifies the ideas to support generation of the narrative so that the narrative explains the value and/or change in value of the specified attribute in terms of one or more drivers and/or influencers for the specified attribute.
40. The apparatus ofclaim 39 wherein the processor comprises a plurality of processors.
41. The apparatus ofclaim 39 wherein the specified attribute is associated with a model that identifies the one or more drivers and/or influencers for the specified attribute, and wherein the processor is further configured to access the model to identify the one or more drivers and/or influencers to be included in the narrative that explains the value and/or change in value of the specified attribute in terms of its one or more drivers and/or influencers.
42. The apparatus ofclaim 39 wherein the processor is further configured to select a conditional outcome framework from among a plurality of conditional outcome frameworks based on the communication goal statement.
43. The apparatus ofclaim 39 wherein the communication goal statement corresponds to the communication goal for explaining a value of a specified attribute with respect to an entity.
44. The apparatus ofclaim 39 wherein the processor is further configured to:
map a plurality of the data parameters to a plurality of conditions associated with the conditional outcome framework; and
test a plurality of the data values associated with the mapped data parameters against the conditions to identify the idea to be expressed in the narrative.
45. The apparatus ofclaim 44 wherein the code is further configured upon execution to cause the processor to:
test the data values associated with the mapped data parameters against the conditions to identify a plurality of ideas to be expressed in the narrative.
46. The apparatus ofclaim 39 wherein the conditional outcome framework comprises a plurality of conditional outcome data structures, wherein each conditional outcome data structure is associated with at least one condition, wherein a plurality of the conditional outcome data structures are linked with a plurality of idea data structures, each idea data structure representing an idea to be expressed in a narrative;
wherein the processor is further configured to (1) determine which conditional outcome data structure is applicable to the structured data based on the conditions associated with the conditional outcome data structures, (2) select an idea data structure that is linked with the determined conditional outcome data structure, and (3) express the idea represented by the selected idea data structure in the natural language narrative text.
47. The apparatus ofclaim 46 wherein the conditional outcome framework comprises a plurality of the conditional outcome data structures arranged in a hierarchical relationship where at least one conditional outcome data structure is associated with a plurality of additional conditional outcome data structures.
48. The apparatus ofclaim 46 wherein the processor is further configured to adjust at least one link between an idea data structure and a conditional outcome data structure in response to an input.
49. The apparatus ofclaim 46 wherein the processor is further configured to adjust at least one of the conditions associated with a conditional outcome data structure in response to an input.
50. The apparatus ofclaim 39 wherein the communication goal statement corresponds to the communication goal for explaining a change in value of a specified attribute with respect to an entity.
51. The apparatus ofclaim 50 wherein the conditional outcome framework comprises a plurality of conditional outcome data structures corresponding to different categorizations of attribute models to support an analysis of one or more drivers and/or influencers for the specified attribute.
52. The apparatus ofclaim 51 wherein the conditional outcome framework is associated with narrative analytics that are configured to analyze changes in values for the specified attribute over a specified time frame.
53. The apparatus ofclaim 51 wherein the conditional outcome framework is associated with narrative analytics that are configured to analyze changes in values for the one or more drivers over a specified time frame.
54. The apparatus ofclaim 39 wherein the communication goal statement is associated with a plurality of attribute structures, each attribute structure corresponding to an attribute of an entity and specifying a model for its corresponding attribute.
55. The apparatus ofclaim 54 wherein the conditional outcome framework comprises a plurality of conditional outcome data structures corresponding to different categorizations of attribute models to support an analysis of one or more drivers and/or influencers for the specified attribute.
56. The apparatus ofclaim 55 wherein the categorizations include a quantitative model and a qualitative model.
57. The apparatus ofclaim 56 wherein the quantitive model comprises a formula model type and an aggregation model type.
58. The apparatus ofclaim 56 wherein the qualitative model comprises an influencer model type.
US16/183,2702017-02-172018-11-07Applied artificial intelligence technology for narrative generation based on explanation communication goalsActive2038-04-05US11568148B1 (en)

Priority Applications (3)

Application NumberPriority DateFiling DateTitle
US16/183,270US11568148B1 (en)2017-02-172018-11-07Applied artificial intelligence technology for narrative generation based on explanation communication goals
US18/145,193US11954445B2 (en)2017-02-172022-12-22Applied artificial intelligence technology for narrative generation based on explanation communication goals
US18/594,440US12423525B2 (en)2017-02-172024-03-04Applied artificial intelligence technology for narrative generation based on explanation communication goals

Applications Claiming Priority (12)

Application NumberPriority DateFiling DateTitle
US201762460349P2017-02-172017-02-17
US201762539832P2017-08-012017-08-01
US201762585809P2017-11-142017-11-14
US15/897,350US10585983B1 (en)2017-02-172018-02-15Applied artificial intelligence technology for determining and mapping data requirements for narrative stories to support natural language generation (NLG) using composable communication goals
US15/897,331US10762304B1 (en)2017-02-172018-02-15Applied artificial intelligence technology for performing natural language generation (NLG) using composable communication goals and ontologies to generate narrative stories
US15/897,373US10719542B1 (en)2017-02-172018-02-15Applied artificial intelligence technology for ontology building to support natural language generation (NLG) using composable communication goals
US15/897,364US10572606B1 (en)2017-02-172018-02-15Applied artificial intelligence technology for runtime computation of story outlines to support natural language generation (NLG)
US15/897,359US10755053B1 (en)2017-02-172018-02-15Applied artificial intelligence technology for story outline formation using composable communication goals to support natural language generation (NLG)
US15/897,381US10713442B1 (en)2017-02-172018-02-15Applied artificial intelligence technology for interactive story editing to support natural language generation (NLG)
US16/047,800US10699079B1 (en)2017-02-172018-07-27Applied artificial intelligence technology for narrative generation based on analysis communication goals
US16/047,837US10943069B1 (en)2017-02-172018-07-27Applied artificial intelligence technology for narrative generation based on a conditional outcome framework
US16/183,270US11568148B1 (en)2017-02-172018-11-07Applied artificial intelligence technology for narrative generation based on explanation communication goals

Related Parent Applications (2)

Application NumberTitlePriority DateFiling Date
US16/047,837Continuation-In-PartUS10943069B1 (en)2017-02-172018-07-27Applied artificial intelligence technology for narrative generation based on a conditional outcome framework
US16/047,800Continuation-In-PartUS10699079B1 (en)2017-02-172018-07-27Applied artificial intelligence technology for narrative generation based on analysis communication goals

Related Child Applications (2)

Application NumberTitlePriority DateFiling Date
US15/897,373Continuation-In-PartUS10719542B1 (en)2017-02-172018-02-15Applied artificial intelligence technology for ontology building to support natural language generation (NLG) using composable communication goals
US18/145,193ContinuationUS11954445B2 (en)2017-02-172022-12-22Applied artificial intelligence technology for narrative generation based on explanation communication goals

Publications (1)

Publication NumberPublication Date
US11568148B1true US11568148B1 (en)2023-01-31

Family

ID=85085789

Family Applications (2)

Application NumberTitlePriority DateFiling Date
US16/183,270Active2038-04-05US11568148B1 (en)2017-02-172018-11-07Applied artificial intelligence technology for narrative generation based on explanation communication goals
US18/594,440ActiveUS12423525B2 (en)2017-02-172024-03-04Applied artificial intelligence technology for narrative generation based on explanation communication goals

Family Applications After (1)

Application NumberTitlePriority DateFiling Date
US18/594,440ActiveUS12423525B2 (en)2017-02-172024-03-04Applied artificial intelligence technology for narrative generation based on explanation communication goals

Country Status (1)

CountryLink
US (2)US11568148B1 (en)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20210319098A1 (en)*2018-12-312021-10-14Intel CorporationSecuring systems employing artificial intelligence
US20220058561A1 (en)*2020-08-182022-02-24Edera L3CChange Management System and Method
US20220171772A1 (en)*2022-02-152022-06-02Garner Distributed Workflow Inc.Structured query language interface for tabular abstraction of structured and unstructured data
US11790164B2 (en)2011-01-072023-10-17Narrative Science Inc.Configurable and portable system for generating narratives
US11816438B2 (en)2018-01-022023-11-14Narrative Science Inc.Context saliency-based deictic parser for natural language processing
US20230367962A1 (en)*2022-05-112023-11-16Outline It, Inc.Interactive writing platform
US11921985B2 (en)2013-03-152024-03-05Narrative Science LlcMethod and system for configuring automatic generation of narratives from data
US11954445B2 (en)2017-02-172024-04-09Narrative Science LlcApplied artificial intelligence technology for narrative generation based on explanation communication goals
US11983503B2 (en)2017-02-172024-05-14Salesforce, Inc.Applied artificial intelligence technology for narrative generation based on a conditional outcome framework
US11989519B2 (en)2018-06-282024-05-21Salesforce, Inc.Applied artificial intelligence technology for using natural language processing and concept expression templates to train a natural language generation system
US12001786B2 (en)2021-05-242024-06-04Salesforce, Inc.Applied artificial intelligence technology for natural language generation using a graph data structure with follow-up capabilities
US12001807B2 (en)2018-01-172024-06-04Salesforce, Inc.Applied artificial intelligence technology for narrative generation using an invocable analysis service
US20240211697A1 (en)*2017-02-172024-06-27Salesforce, Inc.Applied Artificial Intelligence Technology for Narrative Generation Based on Explanation Communication Goals
US12032921B2 (en)2020-07-132024-07-09Ai21 LabsControllable reading guides and natural language generation
US12086562B2 (en)2017-02-172024-09-10Salesforce, Inc.Applied artificial intelligence technology for performing natural language generation (NLG) using composable communication goals and ontologies to generate narrative stories
US12153618B2 (en)2015-11-022024-11-26Salesforce, Inc.Applied artificial intelligence technology for automatically generating narratives from visualization data
US20250068325A1 (en)*2010-04-152025-02-27Kcg Technologies LlcVirtual Smart Phone
US12288039B1 (en)2019-01-282025-04-29Salesforce, Inc.Applied artificial intelligence technology for adaptively classifying sentences based on the concepts they express to improve natural language understanding
US12333647B2 (en)*2022-12-312025-06-17Theai, Inc.Dynamic control of knowledge scope of artificial intelligence characters

Citations (284)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US4992939A (en)1988-08-051991-02-12Tyler Brian GMethod of producing narrative analytical report
WO1996030844A1 (en)1995-03-281996-10-03Takashi OgataSupport system for automation of story structure preparation
US5619631A (en)1995-06-071997-04-08BinaryblitzMethod and apparatus for data alteration by manipulation of representational graphs
US5734916A (en)1994-06-011998-03-31Screenplay Systems, Inc.Method and apparatus for identifying, predicting, and reporting object relationships
US5794050A (en)1995-01-041998-08-11Intelligent Text Processing, Inc.Natural language understanding system
US5802495A (en)1996-03-011998-09-01Goltra; PeterPhrasing structure for the narrative display of findings
US6006175A (en)1996-02-061999-12-21The Regents Of The University Of CaliforniaMethods and apparatus for non-acoustic speech characterization and recognition
US6144938A (en)1998-05-012000-11-07Sun Microsystems, Inc.Voice user interface with personality
US6278967B1 (en)1992-08-312001-08-21Logovista CorporationAutomated system for generating natural language translations that are domain-specific, grammar rule-based, and/or based on part-of-speech analysis
US6289363B1 (en)1996-08-232001-09-11International Business Machines CorporationNavigation editor framework for building mulitmedia titles
US20020046018A1 (en)2000-05-112002-04-18Daniel MarcuDiscourse parsing and summarization
US20020083025A1 (en)1998-12-182002-06-27Robarts James O.Contextual responses based on automated learning techniques
US20020107721A1 (en)2000-10-242002-08-08International Business Machines CorporationStory-based organizational assessment and effect system
US20030004706A1 (en)2001-06-272003-01-02Yale Thomas W.Natural language processing system and method for knowledge management
US20030110186A1 (en)2001-04-262003-06-12Michael MarkowskiDynamic generation of personalized presentation of domain-specific information content
US20030182102A1 (en)2002-03-202003-09-25Simon Corston-OliverSentence realization model for a natural language generation system
US6651218B1 (en)1998-12-222003-11-18Xerox CorporationDynamic content database for multiple document genres
US6665666B1 (en)1999-10-262003-12-16International Business Machines CorporationSystem, method and program product for answering questions using a search engine
US20040015342A1 (en)2002-02-152004-01-22Garst Peter F.Linguistic support for a recognizer of mathematical expressions
US20040083092A1 (en)*2002-09-122004-04-29Valles Luis CalixtoApparatus and methods for developing conversational applications
US20040103116A1 (en)2002-11-262004-05-27Lingathurai PalanisamyIntelligent retrieval and classification of information from a product manual
US6757362B1 (en)2000-03-062004-06-29Avaya Technology Corp.Personal virtual assistant
US20040138899A1 (en)2003-01-132004-07-15Lawrence BirnbaumInteractive task-sensitive assistant
US6771290B1 (en)1998-07-172004-08-03B.E. Technology, LlcComputer interface method and apparatus with portable network organization system and targeted advertising
US20040174397A1 (en)2003-03-052004-09-09Paul CereghiniIntegration of visualizations, reports, and data
US20040225651A1 (en)2003-05-072004-11-11Musgrove Timothy A.System and method for automatically generating a narrative product summary
US20040230989A1 (en)2003-05-162004-11-18Macey William H.Method and apparatus for survey processing
US20040255232A1 (en)2003-06-112004-12-16Northwestern UniversityNetworked presentation system
US20050027704A1 (en)2003-07-302005-02-03Northwestern UniversityMethod and system for assessing relevant properties of work contexts for use by information services
US20050028156A1 (en)2003-07-302005-02-03Northwestern UniversityAutomatic method and system for formulating and transforming representations of context used by information services
US20050033582A1 (en)2001-02-282005-02-10Michael GaddSpoken language interface
US20050125213A1 (en)2003-12-042005-06-09Yin ChenApparatus, system, and method for modeling and analyzing a plurality of computing workloads
US6968316B1 (en)1999-11-032005-11-22Sageworks, Inc.Systems, methods and computer program products for producing narrative financial analysis reports
US20050273362A1 (en)2004-06-022005-12-08Catalis, Inc.Method and system for generating medical narrative
US6976031B1 (en)1999-12-062005-12-13Sportspilot, Inc.System and method for automatically generating a narrative report of an event, such as a sporting event
US20060031182A1 (en)2004-08-052006-02-09First Look Networks LlcMethod and apparatus for automatically providing expert analysis-based advice
US7027974B1 (en)2000-10-272006-04-11Science Applications International CorporationOntology-based parser for natural language processing
US20060101335A1 (en)2004-11-082006-05-11Pisciottano Maurice AMethod and apparatus for generating and storing data and for generating a narrative report
US20060218485A1 (en)2005-03-252006-09-28Daniel BlumenthalProcess for automatic data annotation, selection, and utilization
US20060224570A1 (en)2005-03-312006-10-05Quiroga Martin ANatural language based search engine for handling pronouns and methods of use therefor
US20060253431A1 (en)2004-11-122006-11-09Sense, Inc.Techniques for knowledge discovery by constructing knowledge correlations using terms
US20060253783A1 (en)2005-05-092006-11-09Microsoft CorporationStory template structures associated with story enhancing content and rules
WO2006122329A2 (en)2005-05-112006-11-16Planetwide Games, Inc.Creating publications using gaming-based media content
US20070136657A1 (en)2005-03-252007-06-14Daniel BlumenthalProcess for Automatic Data Annotation, Selection, and Utilization.
US20070132767A1 (en)2005-11-302007-06-14William WrightSystem and method for generating stories in time and space and for analysis of story patterns in an integrated visual representation on a user interface
US7246315B1 (en)2000-05-102007-07-17Realtime Drama, Inc.Interactive personal narrative agent system and method
US20070185864A1 (en)2006-01-312007-08-09Intellext, Inc.Methods and apparatus for displaying ranked search results
US20070250479A1 (en)2006-04-202007-10-25Christopher LuntSystem and Method For Facilitating Collaborative Generation of Life Stories
US20070250826A1 (en)2006-04-212007-10-25O'brien Wayne PComputer program generating
US20080005677A1 (en)2006-06-302008-01-03Business Objects, S.A.Apparatus and method for visualizing data
US7333967B1 (en)1999-12-232008-02-19International Business Machines CorporationMethod and system for automatic computation creativity and specifically for story generation
US20080140696A1 (en)2006-12-072008-06-12Pantheon Systems, Inc.System and method for analyzing data sources to generate metadata
US20080198156A1 (en)2007-02-192008-08-21Cognos IncorporatedSystem and method of report rendering
US20080250070A1 (en)2007-03-292008-10-09Abdulla Abdulla MCreating a report having computer generated narrative text
US20080256066A1 (en)2007-04-102008-10-16Tikatok Inc.Book creation systems and methods
US20080306882A1 (en)2007-06-062008-12-11Vhs, Llc.System, Report, and Method for Generating Natural Language News-Based Stories
US20080304808A1 (en)2007-06-052008-12-11Newell Catherine DAutomatic story creation using semantic classifiers for digital assets and associated metadata
US20080313130A1 (en)2007-06-142008-12-18Northwestern UniversityMethod and System for Retrieving, Selecting, and Presenting Compelling Stories form Online Sources
US20090019013A1 (en)2007-06-292009-01-15Allvoices, Inc.Processing a content item with regard to an event
US20090049041A1 (en)2007-06-292009-02-19Allvoices, Inc.Ranking content items related to an event
US7496621B2 (en)2004-07-142009-02-24International Business Machines CorporationMethod, program, and apparatus for natural language generation
US20090083288A1 (en)2007-09-212009-03-26Neurolanguage CorporationCommunity Based Internet Language Training Providing Flexible Content Delivery
US20090089100A1 (en)2007-10-012009-04-02Valeriy NenovClinical information system
US20090144609A1 (en)2007-10-172009-06-04Jisheng LiangNLP-based entity recognition and disambiguation
US20090144608A1 (en)2004-01-062009-06-04Lionel OiselDevice and method for creating summaries of multimedia documents
US20090157664A1 (en)2007-12-132009-06-18Chih Po WenSystem for extracting itineraries from plain text documents and its application in online trip planning
US7716116B2 (en)2006-11-022010-05-11Vhs, LlcSystem, report, and computer-readable medium for analyzing a stock portfolio
US20100146393A1 (en)2000-12-192010-06-10Sparkpoint Software, Inc.System and method for multimedia authoring and playback
US20100161541A1 (en)2008-12-192010-06-24Eastman Kodak CompanySystem and method for generating a context enhanced work of communication
US20100185984A1 (en)2008-12-022010-07-22William WrightSystem and method for visualizing connected temporal and spatial information as an integrated visual representation on a user interface
US7778895B1 (en)2004-12-152010-08-17Intuit Inc.User interface for displaying imported tax data in association with tax line assignments
US20100241620A1 (en)2007-09-192010-09-23Paul ManisterApparatus and method for document processing
US7818329B2 (en)2007-06-072010-10-19International Business Machines CorporationMethod and apparatus for automatic multimedia narrative enrichment
US7825929B2 (en)2003-04-042010-11-02Agilent Technologies, Inc.Systems, tools and methods for focus and context viewing of large collections of graphs
US20100325107A1 (en)2008-02-222010-12-23Christopher KentonSystems and methods for measuring and managing distributed online conversations
US7865496B1 (en)2004-11-302011-01-04Schiller Victor HSystems, device, and methods for searching
US20110044447A1 (en)2009-08-212011-02-24Nexidia Inc.Trend discovery in audio signals
US20110078105A1 (en)2009-09-292011-03-31PandorabotsMethod for personalizing chat bots
US20110087486A1 (en)2007-06-062011-04-14Vhs, LlcSystem, report, and method for generating natural language news-based stories
US7930169B2 (en)2005-01-142011-04-19Classified Ventures, LlcMethods and systems for generating natural language descriptions from data
US20110113334A1 (en)2008-12-312011-05-12Microsoft CorporationExperience streams for rich interactive narratives
US20110113315A1 (en)2008-12-312011-05-12Microsoft CorporationComputer-assisted rich interactive narrative (rin) generation
US20110213642A1 (en)2008-05-212011-09-01The Delfin Project, Inc.Management system for a conversational system
US20110246182A1 (en)2010-04-062011-10-06Statsheet, Inc.Systems for dynamically generating and presenting narrative content
US20110249953A1 (en)2010-04-092011-10-13Microsoft CorporationAutomated story generation
US8046226B2 (en)2008-01-182011-10-25Cyberpulse, L.L.C.System and methods for reporting
US20110261049A1 (en)2008-06-202011-10-27Business Intelligence Solutions Safe B.V.Methods, apparatus and systems for data visualization and related applications
US20110295903A1 (en)2010-05-282011-12-01Drexel UniversitySystem and method for automatically generating systematic reviews of a scientific field
US20110307435A1 (en)*2010-05-142011-12-15True Knowledge LtdExtracting structured knowledge from unstructured text
US20110311144A1 (en)2010-06-172011-12-22Microsoft CorporationRgb/depth camera for improving speech recognition
US20110314381A1 (en)2010-06-212011-12-22Microsoft CorporationNatural user input for driving interactive stories
US20120069131A1 (en)2010-05-282012-03-22Abelow Daniel HReality alternate
US20120109637A1 (en)2010-11-012012-05-03Yahoo! Inc.Extracting rich temporal context for business entities and events
US20120143849A1 (en)2010-10-082012-06-07Pak Chung WongData Graphing Methods, Articles Of Manufacture, And Computing Devices
US20120158850A1 (en)2010-12-212012-06-21Harrison Edward RMethod and apparatus for automatically creating an experiential narrative
US20120166180A1 (en)*2009-03-232012-06-28Lawrence AuCompassion, Variety and Cohesion For Methods Of Text Analytics, Writing, Search, User Interfaces
US20120265531A1 (en)*1999-11-122012-10-18Bennett Ian MSpeech based learning/training system using semantic decoding
US8311863B1 (en)2009-02-242012-11-13Accenture Global Services LimitedUtility high performance capability assessment
US20120310699A1 (en)2011-06-022012-12-06Siemens CorporationApproach and tool blending ad-hoc and formal workflow models in support of different stakeholder needs
US8355903B1 (en)2010-05-132013-01-15Northwestern UniversitySystem and method for using data and angles to automatically generate a narrative story
US8374848B1 (en)2010-05-132013-02-12Northwestern UniversitySystem and method for using data and derived features to automatically generate a narrative story
US20130041677A1 (en)2011-08-122013-02-14Drchrono.Com IncDynamic Forms
US20130091031A1 (en)2003-05-072013-04-11Cbs Interactive Inc.System and method for generating an alternative product recommendation
US20130096947A1 (en)2011-10-132013-04-18The Board of Trustees of the Leland Stanford Junior, UniversityMethod and System for Ontology Based Analytics
US8442940B1 (en)2008-11-182013-05-14Semantic Research, Inc.Systems and methods for pairing of a semantic network and a natural language processing information extraction system
US8447604B1 (en)2010-04-122013-05-21Adobe Systems IncorporatedMethod and apparatus for processing scripts and related data
US20130144605A1 (en)2011-12-062013-06-06Mehrman Law Office, PCText Mining Analysis and Output System
US20130173285A1 (en)2011-12-302013-07-04Elwha LlcEvidence-based healthcare information management protocols
US20130174026A1 (en)2011-12-282013-07-04Cbs Interactive Inc.Techniques for providing a natural language narrative
US20130185051A1 (en)2012-01-162013-07-18Google Inc.Techniques for generating outgoing messages based on language, internationalization, and localization preferences of the recipient
US20130185049A1 (en)2012-01-122013-07-18International Business Machines CorporationPredicting Pronouns for Pro-Drop Style Languages for Natural Language Translation
US20130187926A1 (en)2011-07-082013-07-25Steamfunk Labs, Inc.Automated presentation of information using infographics
US20130211855A1 (en)2011-08-292013-08-15LeAnne M. EberleAlgorithm for narrative generation
US20130238316A1 (en)2012-03-072013-09-12Infosys LimitedSystem and Method for Identifying Text in Legal documents for Preparation of Headnotes
US20130238330A1 (en)2012-03-082013-09-12Nuance Communications, Inc.Methods and apparatus for generating clinical reports
US20130246300A1 (en)2012-03-132013-09-19American Express Travel Related Services Company, Inc.Systems and Methods for Tailoring Marketing
US20130253910A1 (en)*2012-03-232013-09-26Sententia, LLCSystems and Methods for Analyzing Digital Communications
US20130262092A1 (en)2012-04-022013-10-03Fantasy Journalist, Inc.Narrative Generator
US20130275121A1 (en)*2005-08-012013-10-17Evi Technologies LimitedKnowledge repository
US20130304507A1 (en)2012-04-202013-11-14Valant Medical Solutions, Inc.Clinical note generator
US20130316834A1 (en)2012-05-242013-11-28Sap AgArtificial Intelligence Avatar to Engage Players During Game Play
US8612208B2 (en)2004-04-072013-12-17Oracle Otc Subsidiary LlcOntology for use with a system, method, and computer readable medium for retrieving information and response to a query
US20140006012A1 (en)2012-07-022014-01-02Microsoft CorporationLearning-Based Processing of Natural Language Questions
US8630912B2 (en)2000-05-252014-01-14Toshiba Global Commerce Solutions Holdings CorporationServer, information communication terminal, product sale management method, and storage medium and program transmission apparatus therefor
US8630844B1 (en)2011-01-072014-01-14Narrative Science Inc.Configurable and portable method, apparatus, and computer program product for generating narratives using content blocks, angels and blueprints sets
US8645825B1 (en)2011-08-312014-02-04Google Inc.Providing autocomplete suggestions
US8645124B2 (en)2007-08-012014-02-04Ginger Software, Inc.Automatic context sensitive language generation, correction and enhancement using an internet corpus
US20140040312A1 (en)2009-04-232014-02-06Glace Holding LlcSystems and methods for storage of declarative knowledge accessible by natural language in a computer capable of appropriately responding
US20140062712A1 (en)2012-08-302014-03-06Data2Text LimitedMethod and apparatus for alert validation
WO2014035400A1 (en)2012-08-302014-03-06Data2Text LimitedMethod and apparatus for alert validation
WO2014035402A1 (en)2012-08-302014-03-06Data2Text LimitedText generation in response to alerts, using tree structures
WO2014035403A1 (en)2012-08-302014-03-06Data2Text LimitedMethod and apparatus for annotating a graphical output
WO2014035407A1 (en)2012-08-302014-03-06Data2Text LimitedMethod and apparatus for referring expression generation
WO2014035406A1 (en)2012-08-302014-03-06Data2Text LimitedMethod and apparatus for configurable microplanning
WO2014035447A1 (en)2012-08-302014-03-06Data2Text LimitedMethod and apparatus for updating a previously generated text
US20140075004A1 (en)2012-08-292014-03-13Dennis A. Van DusenSystem And Method For Fuzzy Concept Mapping, Voting Ontology Crowd Sourcing, And Technology Prediction
US8688434B1 (en)2010-05-132014-04-01Narrative Science Inc.System and method for using data to automatically generate a narrative story
WO2014070197A1 (en)2012-11-022014-05-08Data2Text LimitedMethod and apparatus for aggregating with information generalization
US20140129942A1 (en)2011-05-032014-05-08Yogesh Chunilal RathodSystem and method for dynamically providing visual action or activity news feed
US20140134590A1 (en)2012-11-092014-05-15Steven Richard Hiscock Jr.Progress Tracking And Management System
WO2014076524A1 (en)2012-11-162014-05-22Data2Text LimitedMethod and apparatus for spatial descriptions in an output text
WO2014076525A1 (en)2012-11-162014-05-22Data2Text LimitedMethod and apparatus for expressing time in an output text
US20140149107A1 (en)2012-11-292014-05-29Frank SchilderSystems and methods for natural language generation
US8762285B2 (en)2008-01-062014-06-24Yahoo! Inc.System and method for message clustering
US8762134B2 (en)2012-08-302014-06-24Arria Data2Text LimitedMethod and apparatus for situational analysis text generation
WO2014102568A1 (en)2012-12-272014-07-03Arria Data2Text LimitedMethod and apparatus for motion detection
WO2014102569A1 (en)2012-12-272014-07-03Arria Data2Text LimitedMethod and apparatus for motion description
US8775161B1 (en)2011-01-072014-07-08Narrative Science Inc.Method and apparatus for triggering the automatic generation of narratives
US20140201202A1 (en)*2008-05-012014-07-17Chacha Search, IncMethod and system for improvement of request processing
WO2014111753A1 (en)2013-01-152014-07-24Arria Data2Text LimitedMethod and apparatus for document planning
US20140208215A1 (en)2013-01-212014-07-24Salesforce.Com, Inc.Methods and systems for providing filtered report visualizations
US8812311B2 (en)2008-10-272014-08-19Frank Elmo WeberCharacter-based automated shot summarization
US20140314225A1 (en)2013-03-152014-10-23Genesys Telecommunications Laboratories, Inc.Intelligent automated agent for a contact center
US8886520B1 (en)2011-01-072014-11-11Narrative Science Inc.Method and apparatus for triggering the automatic generation of narratives
US8892417B1 (en)2011-01-072014-11-18Narrative Science, Inc.Method and apparatus for triggering the automatic generation of narratives
US8892419B2 (en)2012-04-102014-11-18Artificial Solutions Iberia SLSystem and methods for semiautomatic generation and tuning of natural language interaction applications
US20140351281A1 (en)*2007-10-042014-11-27Amazon Technologies, Inc.Enhanced knowledge repository
US20140356833A1 (en)2011-12-272014-12-04Koninklijke Philips N.V.Generating information relating to a course of a procedure
US20140372850A1 (en)2013-06-152014-12-18Microsoft CorporationTelling Interactive, Self-Directed Stories with Spreadsheets
US20150032730A1 (en)2013-07-232015-01-29Aware, Inc.Data Analysis Engine
US20150049951A1 (en)2013-08-152015-02-19International Business Machines CorporationPresenting meaningful information summary for analyzing complex visualizations
WO2015028844A1 (en)2013-08-292015-03-05Arria Data2Text LimitedText generation from correlated alerts
US8977953B1 (en)2006-01-272015-03-10Linguastat, Inc.Customizing information by combining pair of annotations from at least two different documents
US20150078232A1 (en)2013-09-162015-03-19Disney Enterprises, Inc.Storytelling simulator and device communication
US20150088808A1 (en)2013-09-232015-03-26Sap AgDynamic Determination of Pattern Type and Chart Type for Visual Analytics
US20150134694A1 (en)2011-09-062015-05-14Shl Group LtdAnalytics
US20150142704A1 (en)2013-11-202015-05-21Justin LondonAdaptive Virtual Intelligent Agent
US20150161997A1 (en)2013-12-052015-06-11Lenovo (Singapore) Pte. Ltd.Using context to interpret natural language speech recognition commands
US20150169548A1 (en)2012-08-302015-06-18Arria Data2Text LimitedMethod and apparatus for referring expression generation
US20150178386A1 (en)2013-12-192015-06-25Heiner OberkampfSystem and Method for Extracting Measurement-Entity Relations
US20150186504A1 (en)2009-04-232015-07-02Deep Sky Concepts, Inc.In-context access of stored declarative knowledge using natural language expression
US20150227508A1 (en)2012-11-292015-08-13Blake HowaldSystems and methods for natural language generation
US20150227588A1 (en)2014-02-072015-08-13Quixey, Inc.Rules-Based Generation of Search Results
US20150242384A1 (en)2012-08-302015-08-27Arria Data2Text LimitedMethod and apparatus for annotating a graphical output
US20150249584A1 (en)2014-02-282015-09-03Cellco Partnership D/B/A Verizon WirelessMethod and apparatus for providing an anti-bullying service
US9135244B2 (en)2012-08-302015-09-15Arria Data2Text LimitedMethod and apparatus for configurable microplanning
US20150261745A1 (en)2012-11-292015-09-17Dezhao SongTemplate bootstrapping for domain-adaptable natural language generation
US20150268930A1 (en)2012-12-062015-09-24Korea University Research And Business FoundationApparatus and method for extracting semantic topic
US20150286747A1 (en)2014-04-022015-10-08Microsoft CorporationEntity and attribute resolution in conversational applications
US9164982B1 (en)2008-11-252015-10-20Yseop SaMethods and apparatus for automatically generating text
WO2015159133A1 (en)2014-04-182015-10-22Arria Data2Text LimitedMethod and apparatus for document planning
US20150324347A1 (en)2012-11-022015-11-12Arria Data2Text LimitedMethod and apparatus for aggregating with information generalization
US20150332665A1 (en)2014-05-132015-11-19At&T Intellectual Property I, L.P.System and method for data-driven socially customized models for language generation
US20150331850A1 (en)2014-05-162015-11-19Sierra Nevada CorporationSystem for semantic interpretation
US20150331846A1 (en)2014-05-132015-11-19International Business Machines CorporationTable narration using narration templates
US20150347901A1 (en)2014-05-272015-12-03International Business Machines CorporationGenerating Written Content from Knowledge Management Systems
US9208147B1 (en)2011-01-072015-12-08Narrative Science Inc.Method and apparatus for triggering the automatic generation of narratives
US20150356967A1 (en)2014-06-082015-12-10International Business Machines CorporationGenerating Narrative Audio Works Using Differentiable Text-to-Speech Voices
US9244894B1 (en)2013-09-162016-01-26Arria Data2Text LimitedMethod and apparatus for interactive reports
US20160026253A1 (en)2014-03-112016-01-28Magic Leap, Inc.Methods and systems for creating virtual and augmented reality
US20160027125A1 (en)2014-07-252016-01-28Wealthchart LimitedReport Generation
US20160054889A1 (en)2014-08-212016-02-25The Boeing CompanyIntegrated visualization and analysis of a complex system
US20160062604A1 (en)2014-08-292016-03-03Nuance Communications, Inc.Virtual assistant development system
US20160103559A1 (en)2014-10-092016-04-14Splunk Inc.Graphical user interface for static and adaptive thresholds
US9336193B2 (en)2012-08-302016-05-10Arria Data2Text LimitedMethod and apparatus for updating a previously generated text
US9348815B1 (en)2013-06-282016-05-24Digital Reasoning Systems, Inc.Systems and methods for construction, maintenance, and improvement of knowledge representations
US20160162582A1 (en)2014-12-092016-06-09Moodwire, Inc.Method and system for conducting an opinion search engine and a display thereof
US20160196491A1 (en)2015-01-022016-07-07International Business Machines CorporationMethod For Recommending Content To Ingest As Corpora Based On Interaction History In Natural Language Question And Answering Systems
US9396181B1 (en)2013-09-162016-07-19Arria Data2Text LimitedMethod, apparatus, and computer program product for user-directed reporting
US9396758B2 (en)2012-05-012016-07-19Wochit, Inc.Semi-automatic generation of multimedia content
US20160232221A1 (en)2015-02-062016-08-11International Business Machines CorporationCategorizing Questions in a Question Answering System
US9430557B2 (en)2014-09-172016-08-30International Business Machines CorporationAutomatic data interpretation and answering analytical questions with tables and charts
US9460075B2 (en)2014-06-172016-10-04International Business Machines CorporationSolving and answering arithmetic and algebraic problems using natural language processing
US20160314121A1 (en)*2012-04-022016-10-27Taiger Spain SlSystem and method for natural language querying
US20160314123A1 (en)2015-04-242016-10-27Salesforce.Com, Inc.Identifying entities in semi-structured content
US9483520B1 (en)2013-12-182016-11-01EMC IP Holding Company LLCAnalytic data focus representations for visualization generation in an information processing system
US9535902B1 (en)2013-06-282017-01-03Digital Reasoning Systems, Inc.Systems and methods for entity resolution using attributes from structured and unstructured data
US9536049B2 (en)2012-09-072017-01-03Next It CorporationConversational virtual healthcare assistant
US20170006135A1 (en)2015-01-232017-01-05C3, Inc.Systems, methods, and devices for an enterprise internet-of-things application development platform
US20170017897A1 (en)2015-07-172017-01-19Knoema CorporationMethod and system to provide related data
US20170026705A1 (en)2015-07-242017-01-26Nuance Communications, Inc.System and method for natural language driven search and discovery in large data sources
US20170024465A1 (en)2015-07-242017-01-26Nuance Communications, Inc.System and method for natural language driven search and discovery in large data sources
US9569729B1 (en)2016-07-202017-02-14Chenope, Inc.Analytical system and method for assessing certain characteristics of organizations
US9576009B1 (en)2011-01-072017-02-21Narrative Science Inc.Automatic generation of narratives from data using communication goals and narrative analytics
US20170060857A1 (en)2009-10-202017-03-02Doug IMBRUCESystems and methods for assembling and/or displaying multimedia objects, modules or presentations
US20170061093A1 (en)2015-08-252017-03-02Rubendran AmarasinghamClinical Dashboard User Interface System and Method
US20170068551A1 (en)2015-09-042017-03-09Vishal VadodariaIntelli-voyage travel
US20170091291A1 (en)2015-09-302017-03-30International Business Machines CorporationHistorical summary visualizer for news events
US20170116327A1 (en)2015-10-212017-04-27Fast Forward Labs, Inc.Computerized method of generating and analytically evaluating multiple instances of natural language-generated text
US20170124062A1 (en)2015-10-292017-05-04Yahoo! Inc.Automated personalized electronic message composition
US20170140405A1 (en)2012-03-012017-05-18o9 Solutions, Inc.Global market modeling for advanced market intelligence
US9665259B2 (en)2013-07-122017-05-30Microsoft Technology Licensing, LlcInteractive digital displays
US20170185674A1 (en)2014-04-022017-06-29Semantic Technologies Pty LtdOntology mapping method and apparatus
US9697178B1 (en)2011-01-072017-07-04Narrative Science Inc.Use of tools and abstraction in a configurable and portable system for generating narratives
US9697197B1 (en)2011-01-072017-07-04Narrative Science Inc.Automatic generation of narratives from data using communication goals and narrative analytics
US9697492B1 (en)2011-01-072017-07-04Narrative Science Inc.Automatic generation of narratives from data using communication goals and narrative analytics
US20170212671A1 (en)2016-01-212017-07-27Samsung Electronics Co., Ltd.Method and system for providing topic view in electronic device
US20170213157A1 (en)2015-07-172017-07-27Knoema CorporationMethod and system to provide related data
US20170228372A1 (en)2016-02-082017-08-10Taiger Spain SlSystem and method for querying questions and answers
US9741151B2 (en)2015-04-142017-08-22International Business Machines CorporationMobile interactive comparison chart
US9767145B2 (en)2014-10-102017-09-19Salesforce.Com, Inc.Visual data analysis with animated informational morphing replay
US20170270105A1 (en)2016-03-152017-09-21Arria Data2Text LimitedMethod and apparatus for generating causal explanations using models derived from data
US20170293864A1 (en)2016-04-082017-10-12BPU International, Inc.System and Method for Searching and Matching Content Over Social Networks Relevant to an Individual
US20170358295A1 (en)2016-06-102017-12-14Conduent Business Services, LlcNatural language generation, a hybrid sequence-to-sequence approach
US20170371856A1 (en)2016-06-222017-12-28Sas Institute Inc.Personalized summary generation of data visualizations
US9870362B2 (en)2014-11-112018-01-16Microsoft Technology Licensing, LlcInteractive data-driven presentations
US20180025726A1 (en)2016-07-222018-01-25International Business Machines CorporationCreating coordinated multi-chatbots using natural dialogues by means of knowledge base
US20180089177A1 (en)2016-09-292018-03-29Bong Han CHOMathematical translator, a mathematical translation device and a mathematical translation platform
US9971967B2 (en)2013-12-122018-05-15International Business Machines CorporationGenerating a superset of question/answer action paths based on dynamically generated type sets
US20180189284A1 (en)2016-12-292018-07-05Wipro LimitedSystem and method for dynamically creating a domain ontology
US10019512B2 (en)2011-05-272018-07-10International Business Machines CorporationAutomated self-service user support based on ontology analysis
US10049152B2 (en)2015-09-242018-08-14International Business Machines CorporationGenerating natural language dialog using a questions corpus
US20180232443A1 (en)2017-02-162018-08-16Globality, Inc.Intelligent matching system with ontology-aided relation extraction
US10073861B2 (en)2015-09-032018-09-11Disney Enterprises, Inc.Story albums
US10073840B2 (en)2013-12-202018-09-11Microsoft Technology Licensing, LlcUnsupervised relation detection model training
US20180261203A1 (en)2017-03-092018-09-13Capital One Services, LlcSystems and methods for providing automated natural language dialogue with customers
US20180293483A1 (en)2017-04-112018-10-11Microsoft Technology Licensing, LlcCreating a Conversational Chat Bot of a Specific Person
US10101889B2 (en)2014-10-102018-10-16Salesforce.Com, Inc.Dashboard builder with live data updating without exiting an edit mode
US20180300311A1 (en)2017-01-112018-10-18Satyanarayana KrishnamurthySystem and method for natural language generation
US20180314689A1 (en)2015-12-222018-11-01Sri InternationalMulti-lingual virtual personal assistant
US10162900B1 (en)2015-03-092018-12-25Interos Solutions Inc.Method and system of an opinion search engine with an application programming interface for providing an opinion web portal
US10185477B1 (en)2013-03-152019-01-22Narrative Science Inc.Method and system for configuring automatic generation of narratives from data
US20190042559A1 (en)2017-08-022019-02-07International Business Machines CorporationAnaphora resolution for medical text with machine learning and relevance feedback
US20190102614A1 (en)2017-09-292019-04-04The Mitre CorporationSystems and method for generating event timelines using human language technology
US20190138615A1 (en)2017-11-072019-05-09Thomson Reuters Global Resources Unlimited CompanySystem and methods for context aware searching
US20190147849A1 (en)2017-11-132019-05-16GM Global Technology Operations LLCNatural language generation based on user speech style
US10332297B1 (en)2015-09-042019-06-25Vishal VadodariaElectronic note graphical user interface having interactive intelligent agent and specific note processing features
US20190236140A1 (en)2018-02-012019-08-01International Business Machines CorporationResponding to an indirect utterance by a conversational system
US10387970B1 (en)2014-11-252019-08-20Intuit Inc.Systems and methods for analyzing and generating explanations for changes in tax return results
US10572606B1 (en)*2017-02-172020-02-25Narrative Science Inc.Applied artificial intelligence technology for runtime computation of story outlines to support natural language generation (NLG)
US10579835B1 (en)2013-05-222020-03-03Sri InternationalSemantic pre-processing of natural language input in a virtual personal assistant
US20200074310A1 (en)2018-08-312020-03-05Accenture Global Solutions LimitedReport generation
US10599767B1 (en)2018-05-312020-03-24The Ultimate Software Group, Inc.System for providing intelligent part of speech processing of complex natural language
US10657201B1 (en)2011-01-072020-05-19Narrative Science Inc.Configurable and portable system for generating narratives
US10679011B2 (en)2017-05-102020-06-09Oracle International CorporationEnabling chatbots by detecting and supporting argumentation
US20200202846A1 (en)2017-06-182020-06-25Google LlcProcessing natural language using machine learning to determine slot values based on slot descriptors
US10699079B1 (en)*2017-02-172020-06-30Narrative Science Inc.Applied artificial intelligence technology for narrative generation based on analysis communication goals
US10706236B1 (en)2018-06-282020-07-07Narrative Science Inc.Applied artificial intelligence technology for using natural language processing and concept expression templates to train a natural language generation system
US10747823B1 (en)2014-10-222020-08-18Narrative Science Inc.Interactive and conversational data exploration
US10853583B1 (en)2016-08-312020-12-01Narrative Science Inc.Applied artificial intelligence technology for selective control over narrative generation from visualizations of data
US10943069B1 (en)2017-02-172021-03-09Narrative Science Inc.Applied artificial intelligence technology for narrative generation based on a conditional outcome framework
US10963649B1 (en)2018-01-172021-03-30Narrative Science Inc.Applied artificial intelligence technology for narrative generation using an invocable analysis service and configuration-driven analytics
US10990767B1 (en)2019-01-282021-04-27Narrative Science Inc.Applied artificial intelligence technology for adaptive natural language understanding
US11030408B1 (en)2018-02-192021-06-08Narrative Science Inc.Applied artificial intelligence technology for conversational inferencing using named entity reduction
US11037342B1 (en)2016-07-312021-06-15Splunk Inc.Visualization modules for use within a framework for displaying interactive visualizations of event data
US11042708B1 (en)2018-01-022021-06-22Narrative Science Inc.Context saliency-based deictic parser for natural language generation
US11055497B2 (en)2016-12-292021-07-06Ncsoft CorporationNatural language generation of sentence sequences from textual data with paragraph generation model
US11068661B1 (en)2017-02-172021-07-20Narrative Science Inc.Applied artificial intelligence technology for narrative generation based on smart attributes
US11170038B1 (en)*2015-11-022021-11-09Narrative Science Inc.Applied artificial intelligence technology for using narrative analytics to automatically generate narratives from multiple visualizations
US11222184B1 (en)*2015-11-022022-01-11Narrative Science Inc.Applied artificial intelligence technology for using narrative analytics to automatically generate narratives from bar charts
US11232268B1 (en)*2015-11-022022-01-25Narrative Science Inc.Applied artificial intelligence technology for using narrative analytics to automatically generate narratives from line charts
US11238090B1 (en)*2015-11-022022-02-01Narrative Science Inc.Applied artificial intelligence technology for using narrative analytics to automatically generate narratives from visualization data
US11288328B2 (en)2014-10-222022-03-29Narrative Science Inc.Interactive and conversational data exploration
US20220114206A1 (en)2015-11-022022-04-14Narrative Science Inc.Applied Artificial Intelligence Technology for Automatically Generating Narratives from Visualization Data

Family Cites Families (204)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US5687364A (en)1994-09-161997-11-11Xerox CorporationMethod for learning to infer the topical content of documents based upon their lexical content
US5999664A (en)1997-11-141999-12-07Xerox CorporationSystem for searching a corpus of document images by user specified document layout components
EP1049030A1 (en)1999-04-282000-11-02SER Systeme AG Produkte und Anwendungen der DatenverarbeitungClassification method and apparatus
JP3793085B2 (en)1999-08-062006-07-05レキシス ネクシス System and method for categorizing legal concepts using legal topic systems
US6820237B1 (en)2000-01-212004-11-16Amikanow! CorporationApparatus and method for context-based highlighting of an electronic document
US6622152B1 (en)2000-05-092003-09-16International Business Machines CorporationRemote log based replication solution
US20020099730A1 (en)2000-05-122002-07-25Applied Psychology Research LimitedAutomatic text classification system
US6697998B1 (en)2000-06-122004-02-24International Business Machines CorporationAutomatic labeling of unlabeled text data
DE10059430A1 (en)2000-11-302002-06-06Cognis Deutschland Gmbh Finely divided emulsions
US6714939B2 (en)2001-01-082004-03-30Softface, Inc.Creation of structured data from plain text
US6810111B1 (en)2001-06-252004-10-26Intervoice Limited PartnershipSystem and method for measuring interactive voice response application efficiency
US7075536B1 (en)2001-07-132006-07-11Cisco Technology, Inc.Incremental plotting of network topologies and other graphs through use of markup language
US20030061029A1 (en)2001-08-292003-03-27Efraim ShaketDevice for conducting expectation based mixed initiative natural language dialogs
US20030084066A1 (en)2001-10-312003-05-01Waterman Scott A.Device and method for assisting knowledge engineer in associating intelligence with content
US10706428B2 (en)2001-12-112020-07-07International Business Machines CorporationMethod for contact stream optimization
AU2003228288A1 (en)2002-03-042003-09-22University Of Southern CaliforniaSentence generator
US7383532B2 (en)2002-04-192008-06-03Computer Associates Think, Inc.System and method for client-side locale specific numeric format handling in a web environment
US7191119B2 (en)2002-05-072007-03-13International Business Machines CorporationIntegrated development tool for building a natural language understanding application
US7085771B2 (en)2002-05-172006-08-01Verity, IncSystem and method for automatically discovering a hierarchy of concepts from a corpus of documents
US7805302B2 (en)2002-05-202010-09-28Microsoft CorporationApplying a structured language model to information extraction
JP2004164036A (en)2002-11-082004-06-10Hewlett Packard Co <Hp>Method for evaluating commonality of document
US6917936B2 (en)2002-12-182005-07-12Xerox CorporationMethod and apparatus for measuring similarity between documents
US7089241B1 (en)2003-01-242006-08-08America Online, Inc.Classifier tuning based on data similarities
US8495002B2 (en)2003-05-062013-07-23International Business Machines CorporationSoftware tool for training and testing a knowledge base
JP4382526B2 (en)2003-07-012009-12-16株式会社山武 Sentence classification apparatus and method
US7475010B2 (en)2003-09-032009-01-06Lingospot, Inc.Adaptive and scalable method for resolving natural language ambiguities
US7587307B2 (en)2003-12-182009-09-08Xerox CorporationMethod and apparatus for evaluating machine translation quality
US7702718B2 (en)2004-03-302010-04-20Cisco Technology, Inc.Providing enterprise information
US8065383B2 (en)2004-05-172011-11-22Simplefeed, Inc.Customizable and measurable information feeds for personalized communication
US7496567B1 (en)2004-10-012009-02-24Terril John SteichenSystem and method for document categorization
US7835902B2 (en)2004-10-202010-11-16Microsoft CorporationTechnique for document editorial quality assessment
US20060165040A1 (en)2004-11-302006-07-27Rathod Yogesh CSystem, method, computer program products, standards, SOA infrastructure, search algorithm and a business method thereof for AI enabled information communication and computation (ICC) framework (NetAlter) operated by NetAlter Operating System (NOS) in terms of NetAlter Service Browser (NSB) to device alternative to internet and enterprise & social communication framework engrossing universally distributed grid supercomputing and peer to peer framework
JP4570509B2 (en)2005-04-222010-10-27富士通株式会社 Reading generation device, reading generation method, and computer program
US8055608B1 (en)2005-06-102011-11-08NetBase Solutions, Inc.Method and apparatus for concept-based classification of natural language discourse
US7818676B2 (en)2005-09-222010-10-19International Business Machines CorporationSystem, method and program product for a content viewer portlet
WO2007042055A1 (en)2005-10-062007-04-19Hiflex Software GesmbhMethod for the planning and control of jobs and management information system
EP2011037A1 (en)2006-04-112009-01-07ITI Scotland LimitedInformation extraction methods and apparatus including a computer-user interface
US8407052B2 (en)2006-04-172013-03-26Vovision, LlcMethods and systems for correcting transcribed audio files
ITBO20060648A1 (en)2006-09-202008-03-21Univ Degli Studi Roma Tre METHOD FOR DYNAMIC AND SAFE MANAGEMENT OF A DATABASE RELATIONAL TABLE
US8468244B2 (en)2007-01-052013-06-18Digital Doors, Inc.Digital information infrastructure and method for security designated data and with granular data stores
US8655939B2 (en)2007-01-052014-02-18Digital Doors, Inc.Electromagnetic pulse (EMP) hardened information infrastructure with extractor, cloud dispersal, secure storage, content analysis and classification and method therefor
US9058319B2 (en)2007-06-182015-06-16International Business Machines CorporationSub-model generation to improve classification accuracy
US9342588B2 (en)2007-06-182016-05-17International Business Machines CorporationReclassification of training data to improve classifier accuracy
US10762080B2 (en)2007-08-142020-09-01John Nicholas and Kristin Gross TrustTemporal document sorter and method
US8050929B2 (en)2007-08-242011-11-01Robert Bosch GmbhMethod and system of optimal selection strategy for statistical classifications in dialog systems
US8027941B2 (en)2007-09-142011-09-27Accenture Global Services LimitedAutomated classification algorithm comprising at least one input-invariant part
EP2210192A1 (en)2007-10-102010-07-28ITI Scotland LimitedInformation extraction apparatus and methods
JP2011501847A (en)2007-10-172011-01-13アイティーアイ・スコットランド・リミテッド Computer-implemented method
US20090119584A1 (en)2007-11-022009-05-07Steve HerbstSoftware Tool for Creating Outlines and Mind Maps that Generates Subtopics Automatically
WO2009061390A1 (en)2007-11-052009-05-14Enhanced Medical Decisions, Inc.Machine learning systems and methods for improved natural language processing
WO2009061917A1 (en)2007-11-062009-05-14Copanion, Inc.Systems and methods to automatically organize electronic jobs by automatically classifying electronic documents using extracted image and text features and using a machine-learning recognition subsystem
US8140335B2 (en)2007-12-112012-03-20Voicebox Technologies, Inc.System and method for providing a natural language voice user interface in an integrated voice navigation services environment
US8077984B2 (en)2008-01-042011-12-13Xerox CorporationMethod for computing similarity between text spans using factored word sequence kernels
US7877367B2 (en)2008-01-222011-01-25International Business Machines CorporationComputer method and apparatus for graphical inquiry specification with progressive summary
US9037583B2 (en)2008-02-292015-05-19Ratnakar NiteshGeo tagging and automatic generation of metadata for photos and videos
US8463594B2 (en)2008-03-212013-06-11Sauriel LlcSystem and method for analyzing text using emotional intelligence factors
US9141689B2 (en)2008-06-112015-09-22International Business Machines CorporationPersona management system for communications
EP2297685A1 (en)2008-07-042011-03-23Yogesh Chunilal RathodMethods and systems for brands social networks (bsn) platform
US8190423B2 (en)2008-09-052012-05-29Trigent Software Ltd.Word sense disambiguation using emergent categories
US8630961B2 (en)2009-01-082014-01-14Mycybertwin Group Pty LtdChatbots
US8335754B2 (en)2009-03-062012-12-18Tagged, Inc.Representing a document using a semantic structure
US8515957B2 (en)2009-07-282013-08-20Fti Consulting, Inc.System and method for displaying relationships between electronically stored information to provide classification suggestions via injection
US8458154B2 (en)2009-08-142013-06-04Buzzmetrics, Ltd.Methods and apparatus to classify text communications
US8731966B2 (en)2009-09-242014-05-20Humedica, Inc.Systems and methods for real-time data ingestion to a clinical analytics platform to generate a heat map
KR101259558B1 (en)2009-10-082013-05-07한국전자통신연구원apparatus and method for detecting sentence boundaries
US20100075281A1 (en)2009-11-132010-03-25Manuel-Devadoss Johnson SmithIn-Flight Entertainment Phonetic Language Translation System using Brain Interface
US20100082325A1 (en)2009-11-162010-04-01Manuel-Devadoss Johnson SmithAutomated phonetic language translation system using Human Brain Interface
US8599836B2 (en)2010-01-272013-12-03Neobitspeak LLCWeb-based, hosted, self-service outbound contact center utilizing speaker-independent interactive voice response and including enhanced IP telephony
US9047283B1 (en)2010-01-292015-06-02Guangsheng ZhangAutomated topic discovery in documents and content categorization
US8407217B1 (en)2010-01-292013-03-26Guangsheng ZhangAutomated topic discovery in documents
US8676565B2 (en)2010-03-262014-03-18Virtuoz SaSemantic clustering and conversational agents
US11989659B2 (en)2010-05-132024-05-21Salesforce, Inc.Method and apparatus for triggering the automatic generation of narratives
US8924377B2 (en)2010-05-192014-12-30Digital Map Products, Inc.Preference stack
US9552355B2 (en)2010-05-202017-01-24Xerox CorporationDynamic bi-phrases for statistical machine translation
CN102262622A (en)2010-05-312011-11-30国际商业机器公司Document processing, template generating and conceptbase generating methods and devices
US8751563B1 (en)2010-06-302014-06-10Allstate Insurance CompanyGeotribing
US8924391B2 (en)2010-09-282014-12-30Microsoft CorporationText classification using concept kernel
US9792277B2 (en)2010-12-092017-10-17Rage Frameworks, Inc.System and method for determining the meaning of a document with respect to a concept
US20150120738A1 (en)2010-12-092015-04-30Rage Frameworks, Inc.System and method for document classification based on semantic analysis of the document
US20120203623A1 (en)2011-02-072012-08-09Adaptly, Inc.System and method for online advertisement optimization
US8689176B2 (en)2011-05-112014-04-01International Business Machines CorporationManagement of template versions
US20140114489A1 (en)2011-06-102014-04-24Enthenergy, Llc.Sustainable energy efficiency management system
US8676566B2 (en)2011-07-072014-03-18Korea Advanced Institute Of Science And TechnologyMethod of extracting experience sentence and classifying verb in blog
KR20130097290A (en)2012-02-242013-09-03한국전자통신연구원Apparatus and method for providing internet page on user interest
US10372741B2 (en)2012-03-022019-08-06Clarabridge, Inc.Apparatus for automatic theme detection from unstructured data
US8752134B2 (en)2012-03-052014-06-10Jie MaSystem and method for detecting and preventing attacks against a server in a computer network
WO2013138503A1 (en)2012-03-132013-09-19Stieglitz AviLanguage learning platform using relevant and contextual content
US9244908B2 (en)2012-03-272016-01-26Accenture Global Services LimitedGeneration of a semantic model from textual listings
WO2013149320A1 (en)2012-04-042013-10-10Scribble Technologies Inc.System and method for generating digital content
US9507867B2 (en)2012-04-062016-11-29Enlyton Inc.Discovery engine
US20140059443A1 (en)2012-08-262014-02-27Joseph Akwo TabeSocial network for media topics of information relating to the science of positivism
US20160062954A1 (en)2012-09-152016-03-03Numbergun LlcFlexible high-speed generation and formatting of application-specified strings
US9817810B2 (en)2012-11-072017-11-14International Business Machines CorporationSVO-based taxonomy-driven text analytics
US20140164978A1 (en)2012-12-092014-06-12Ken DeeterDisplaying aggregated news ticker content in a social networking system
US9471559B2 (en)2012-12-102016-10-18International Business Machines CorporationDeep analysis of natural language questions for question answering system
US9436663B2 (en)2012-12-172016-09-06Hewlett Packard Enterprise Development LpPresenting documents to a user based on topics and collective opinions expressed in the documents
US9235567B2 (en)2013-01-142016-01-12Xerox CorporationMulti-domain machine translation model adaptation
US9630912B2 (en)2013-01-162017-04-25Shanghai Jiao Tong UniversityShikonin, alkannin; and racemic parent nucleus cabonyl oxime derivatives and applications thereof
US9111534B1 (en)2013-03-142015-08-18Google Inc.Creation of spoken news programs
US20140322677A1 (en)2013-03-152014-10-30Spenser SegalSystems and methods for computer guided coaching
US9594756B2 (en)2013-03-152017-03-14HCL America Inc.Automated ranking of contributors to a knowledge base
US9715331B2 (en)2013-03-152017-07-25International Business Machines CorporationGenerating an insight view while maintaining report context
US9875494B2 (en)2013-04-162018-01-23Sri InternationalUsing intents to analyze and personalize a user's dialog experience with a virtual personal assistant
US10776375B2 (en)2013-07-152020-09-15Microsoft Technology Licensing, LlcRetrieval of attribute values based upon identified entities
US9418336B2 (en)2013-08-022016-08-16Microsoft Technology Licensing, LlcAutomatic recognition and insights of data
US20150199339A1 (en)2014-01-142015-07-16Xerox CorporationSemantic refining of cross-lingual information retrieval results
US10747950B2 (en)2014-01-302020-08-18Microsoft Technology Licensing, LlcAutomatic insights for spreadsheets
DE112014006542B4 (en)2014-03-312024-02-08Mitsubishi Electric Corporation Setup and process for understanding user intent
US9251139B2 (en)2014-04-082016-02-02TitleFlow LLCNatural language processing for extracting conveyance graphs
JP6372165B2 (en)2014-05-262018-08-15富士ゼロックス株式会社 Design management apparatus and program
US9712578B2 (en)2014-06-172017-07-18Facebook, Inc.Determining stories of interest based on quality of unconnected content
US9767093B2 (en)2014-06-192017-09-19Nuance Communications, Inc.Syntactic parser assisted semantic rule inference
WO2015199653A1 (en)2014-06-242015-12-30Nuance Communications, Inc.Methods and apparatus for joint stochastic and deterministic dictation formatting
US9390086B2 (en)2014-09-112016-07-12Palantir Technologies Inc.Classification system with methodology for efficient verification
CN105528349B (en)2014-09-292019-02-01华为技术有限公司The method and apparatus that question sentence parses in knowledge base
US11922344B2 (en)2014-10-222024-03-05Narrative Science LlcAutomatic generation of narratives from data using communication goals and narrative analytics
US9773166B1 (en)2014-11-032017-09-26Google Inc.Identifying longform articles
US20160155067A1 (en)2014-11-202016-06-02Shlomo DubnovMapping Documents to Associated Outcome based on Sequential Evolution of Their Contents
US10068185B2 (en)2014-12-072018-09-04Microsoft Technology Licensing, LlcError-driven feature ideation in machine learning
WO2016115154A1 (en)2015-01-142016-07-21MindsightMedia, Inc.Data mining, influencing viewer selections, and user interfaces
US10891573B2 (en)2015-04-192021-01-12Schlumberger Technology CorporationWellsite report system
US10565518B2 (en)2015-06-232020-02-18Adobe Inc.Collaborative feature learning from social media
US10311741B2 (en)2015-07-022019-06-04Pearson Education, Inc.Data extraction and analysis system and tool
US9473637B1 (en)2015-07-282016-10-18Xerox CorporationLearning generation templates from dialog transcripts
US10783179B2 (en)2015-08-032020-09-22International Business Machines CorporationAutomated article summarization, visualization and analysis using cognitive services
US10416841B2 (en)2015-08-102019-09-17Microsoft Technology Licensing, LlcAnimated data visualization video
US10476908B2 (en)2015-08-102019-11-12Allure Security Technology Inc.Generating highly realistic decoy email and documents
US20200143468A1 (en)2015-08-132020-05-07Cronus Consulting Group Pty LtdSystem for financial information reporting
US10331768B2 (en)2015-09-212019-06-25Tata Consultancy Services LimitedTagging text snippets
US9696967B2 (en)2015-11-092017-07-04Microsoft Technology Licensing, LlcGeneration of an application from data
US10013404B2 (en)2015-12-032018-07-03International Business Machines CorporationTargeted story summarization using natural language processing
US10909111B2 (en)2015-12-162021-02-02Adobe Inc.Natural language embellishment generation and summarization for question-answering systems
US10262062B2 (en)2015-12-212019-04-16Adobe Inc.Natural language system question classifier, semantic representations, and logical form templates
US10176250B2 (en)2016-01-122019-01-08International Business Machines CorporationAutomated curation of documents in a corpus for a cognitive computing system
US10311859B2 (en)2016-01-162019-06-04Genesys Telecommunications Laboratories, Inc.Material selection for language model customization in speech recognition for speech analytics
US11042798B2 (en)2016-02-042021-06-22Adobe Inc.Regularized iterative collaborative feature learning from web and user behavior data
US20170242886A1 (en)2016-02-192017-08-24Jack Mobile Inc.User intent and context based search results
US10115108B1 (en)2016-03-292018-10-30EMC IP Holding Company LLCRendering transaction data to identify fraud detection rule strength
US10031901B2 (en)2016-03-302018-07-24International Business Machines CorporationNarrative generation using pattern recognition
US9910914B1 (en)2016-05-052018-03-06Thomas H. CowleyInformation retrieval based on semantics
US10146859B2 (en)2016-05-132018-12-04General Electric CompanySystem and method for entity recognition and linking
US10361982B2 (en)2016-05-172019-07-23Daybreak Game Company LlcInteractive message-based delivery of narrative content using a communication network
WO2017202631A1 (en)2016-05-272017-11-30Koninklijke Philips N.V.Systems and methods for modeling free-text clinical documents into a hierarchical graph-like data structure based on semantic relationships among clinical concepts present in the documents
WO2018000272A1 (en)2016-06-292018-01-04深圳狗尾草智能科技有限公司Corpus generation device and method
US20180024989A1 (en)2016-07-192018-01-25International Business Machines CorporationAutomated building and sequencing of a storyline and scenes, or sections, included therein
US10860950B2 (en)2016-08-312020-12-08Sas Institute Inc.Automated computer-based model development, deployment, and management
US20180075368A1 (en)2016-09-122018-03-15International Business Machines CorporationSystem and Method of Advising Human Verification of Often-Confused Class Predictions
US20180082184A1 (en)2016-09-192018-03-22TCL Research America Inc.Context-aware chatbot system and method
KR101803392B1 (en)2016-10-282017-11-30(주) 비미오System and method for detecting a format of each nation's telephone number system with machine learning
US20190267118A1 (en)2016-11-102019-08-29Indiana University Research And Technology CorporationPerson-centered health record architecture
US20180232487A1 (en)2017-02-102018-08-16Maximus, Inc.Document classification tool for large electronic files
US20180232493A1 (en)2017-02-102018-08-16Maximus, Inc.Case-level review tool for physicians
US11030697B2 (en)2017-02-102021-06-08Maximus, Inc.Secure document exchange portal system with efficient user access
US10491616B2 (en)2017-02-132019-11-26Microsoft Technology Licensing, LlcMulti-signal analysis for compromised scope identification
US11954445B2 (en)*2017-02-172024-04-09Narrative Science LlcApplied artificial intelligence technology for narrative generation based on explanation communication goals
US11568148B1 (en)*2017-02-172023-01-31Narrative Science Inc.Applied artificial intelligence technology for narrative generation based on explanation communication goals
US10963493B1 (en)2017-04-062021-03-30AIBrain CorporationInteractive game with robot system
US10599885B2 (en)2017-05-102020-03-24Oracle International CorporationUtilizing discourse structure of noisy user-generated content for chatbot learning
US10339423B1 (en)2017-06-132019-07-02Symantec CorporationSystems and methods for generating training documents used by classification algorithms
US10318889B2 (en)2017-06-262019-06-11Konica Minolta Laboratory U.S.A., Inc.Targeted data augmentation using neural style transfer
US11150871B2 (en)2017-08-182021-10-19Colossio, Inc.Information density of documents
US11526518B2 (en)2017-09-222022-12-13Amazon Technologies, Inc.Data reporting system and method
US10353956B2 (en)2017-10-192019-07-16Capital One Services, LlcIdentifying merchant data associated with multiple data structures
US10726061B2 (en)2017-11-172020-07-28International Business Machines CorporationIdentifying text for labeling utilizing topic modeling-based text clustering
US10606953B2 (en)2017-12-082020-03-31General Electric CompanySystems and methods for learning to extract relations from text via user feedback
US10540438B2 (en)2017-12-222020-01-21International Business Machines CorporationCognitive framework to detect adverse events in free-form text
US11640420B2 (en)2017-12-312023-05-02Zignal Labs, Inc.System and method for automatic summarization of content with event based analysis
WO2019140120A1 (en)2018-01-112019-07-18End Cue, LlcScript writing and content generation tools and improved operation of same
US11270211B2 (en)2018-02-052022-03-08Microsoft Technology Licensing, LlcInteractive semantic data exploration for error discovery
US11250383B2 (en)2018-03-052022-02-15Nuance Communications, Inc.Automated clinical documentation system and method
US10838996B2 (en)2018-03-152020-11-17International Business Machines CorporationDocument revision change summarization
EP3557439A1 (en)2018-04-162019-10-23Tata Consultancy Services LimitedDeep learning techniques based multi-purpose conversational agents for processing natural language queries
US10628527B2 (en)2018-04-262020-04-21Microsoft Technology Licensing, LlcAutomatically cross-linking application programming interfaces
US10832001B2 (en)2018-04-262020-11-10Google LlcMachine learning to identify opinions in documents
US11741362B2 (en)2018-05-082023-08-29Microsoft Technology Licensing, LlcTraining neural networks using mixed precision computations
US11636376B2 (en)2018-06-032023-04-25International Business Machines CorporationActive learning for concept disambiguation
US10776582B2 (en)2018-06-062020-09-15International Business Machines CorporationSupporting combinations of intents in a conversation
US20200019370A1 (en)2018-07-122020-01-16Disney Enterprises, Inc.Collaborative ai storytelling
US11500911B2 (en)2018-07-312022-11-15Sap SeDescriptive text generation for data visualizations
US20200066391A1 (en)2018-08-242020-02-27Rohit C. SachdevaPatient -centered system and methods for total orthodontic care management
US10810260B2 (en)2018-08-282020-10-20Beijing Jingdong Shangke Information Technology Co., Ltd.System and method for automatically generating articles of a product
US10846651B2 (en)2018-08-312020-11-24Kinaxis Inc.Analysis and correction of supply chain design through machine learning
US20200081939A1 (en)2018-09-112020-03-12Hcl Technologies LimitedSystem for optimizing detection of intent[s] by automated conversational bot[s] for providing human like responses
US11017764B1 (en)2018-09-282021-05-25Splunk Inc.Predicting follow-on requests to a natural language request received by a natural language processing system
US11163906B2 (en)2018-10-042021-11-02Orbis Technologies, Inc.Adaptive redaction and data releasability systems using dynamic parameters and user defined rule sets
US20200134090A1 (en)2018-10-262020-04-30Ca, Inc.Content exposure and styling control for visualization rendering and narration using data domain rules
US10872083B2 (en)2018-10-312020-12-22Microsoft Technology Licensing, LlcConstructing structured database query language statements from natural language questions
US11093740B2 (en)2018-11-092021-08-17Microsoft Technology Licensing, LlcSupervised OCR training for custom forms
US11797902B2 (en)2018-11-162023-10-24Accenture Global Solutions LimitedProcessing data utilizing a corpus
US11392773B1 (en)2019-01-312022-07-19Amazon Technologies, Inc.Goal-oriented conversational training data generation
US10706045B1 (en)2019-02-112020-07-07Innovaccer Inc.Natural language querying of a data lake using contextualized knowledge bases
US20200302393A1 (en)2019-03-182020-09-24Servicenow, Inc.Machine learning for case management information generation
US11169826B2 (en)2019-05-282021-11-09Oracle International CorporationUser-assisted plug-in application recipe execution
US11675630B2 (en)2019-08-152023-06-13Intel CorporationMethods and apparatus to configure heterogenous components in an accelerator
US11238235B2 (en)2019-09-182022-02-01International Business Machines CorporationAutomated novel concept extraction in natural language processing
US11574015B2 (en)2020-01-062023-02-07International Business Machines CorporationNatural language interaction based data analytics
US11568153B2 (en)2020-03-052023-01-31Bank Of America CorporationNarrative evaluator
US11615799B2 (en)2020-05-292023-03-28Microsoft Technology Licensing, LlcAutomated meeting minutes generator
US12223121B2 (en)2020-06-192025-02-11Talent Unlimited Online Services Private LimitedArtificial intelligence-based system and method for dynamically predicting and suggesting emojis for messages
US20220092508A1 (en)2020-09-212022-03-24Larsen & Toubro Infotech LtdMethod and system for generating contextual narrative for deriving insights from visualizations
US11328823B2 (en)2020-10-132022-05-10Steven W. GoldsteinWearable device for reducing exposure to pathogens of possible contagion
US11393475B1 (en)2021-01-132022-07-19Artificial Solutions Iberia S.LConversational system for recognizing, understanding, and acting on multiple intents and hypotheses
US11683283B2 (en)2021-03-302023-06-20International Business Machines CorporationMethod for electronic messaging
US12189782B2 (en)2021-06-232025-01-07The Mitre CorporationMethods and systems for natural language processing of graph database queries

Patent Citations (368)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US4992939A (en)1988-08-051991-02-12Tyler Brian GMethod of producing narrative analytical report
US6278967B1 (en)1992-08-312001-08-21Logovista CorporationAutomated system for generating natural language translations that are domain-specific, grammar rule-based, and/or based on part-of-speech analysis
US5734916A (en)1994-06-011998-03-31Screenplay Systems, Inc.Method and apparatus for identifying, predicting, and reporting object relationships
US5794050A (en)1995-01-041998-08-11Intelligent Text Processing, Inc.Natural language understanding system
WO1996030844A1 (en)1995-03-281996-10-03Takashi OgataSupport system for automation of story structure preparation
US5619631A (en)1995-06-071997-04-08BinaryblitzMethod and apparatus for data alteration by manipulation of representational graphs
US6006175A (en)1996-02-061999-12-21The Regents Of The University Of CaliforniaMethods and apparatus for non-acoustic speech characterization and recognition
US5802495A (en)1996-03-011998-09-01Goltra; PeterPhrasing structure for the narrative display of findings
US6289363B1 (en)1996-08-232001-09-11International Business Machines CorporationNavigation editor framework for building mulitmedia titles
US6144938A (en)1998-05-012000-11-07Sun Microsystems, Inc.Voice user interface with personality
US6771290B1 (en)1998-07-172004-08-03B.E. Technology, LlcComputer interface method and apparatus with portable network organization system and targeted advertising
US20020083025A1 (en)1998-12-182002-06-27Robarts James O.Contextual responses based on automated learning techniques
US6651218B1 (en)1998-12-222003-11-18Xerox CorporationDynamic content database for multiple document genres
US6665666B1 (en)1999-10-262003-12-16International Business Machines CorporationSystem, method and program product for answering questions using a search engine
US6968316B1 (en)1999-11-032005-11-22Sageworks, Inc.Systems, methods and computer program products for producing narrative financial analysis reports
US20120265531A1 (en)*1999-11-122012-10-18Bennett Ian MSpeech based learning/training system using semantic decoding
US6976031B1 (en)1999-12-062005-12-13Sportspilot, Inc.System and method for automatically generating a narrative report of an event, such as a sporting event
US7333967B1 (en)1999-12-232008-02-19International Business Machines CorporationMethod and system for automatic computation creativity and specifically for story generation
US6757362B1 (en)2000-03-062004-06-29Avaya Technology Corp.Personal virtual assistant
US7246315B1 (en)2000-05-102007-07-17Realtime Drama, Inc.Interactive personal narrative agent system and method
US20020046018A1 (en)2000-05-112002-04-18Daniel MarcuDiscourse parsing and summarization
US8630912B2 (en)2000-05-252014-01-14Toshiba Global Commerce Solutions Holdings CorporationServer, information communication terminal, product sale management method, and storage medium and program transmission apparatus therefor
US20020107721A1 (en)2000-10-242002-08-08International Business Machines CorporationStory-based organizational assessment and effect system
US7027974B1 (en)2000-10-272006-04-11Science Applications International CorporationOntology-based parser for natural language processing
US20100146393A1 (en)2000-12-192010-06-10Sparkpoint Software, Inc.System and method for multimedia authoring and playback
US20050033582A1 (en)2001-02-282005-02-10Michael GaddSpoken language interface
US20030110186A1 (en)2001-04-262003-06-12Michael MarkowskiDynamic generation of personalized presentation of domain-specific information content
US20030004706A1 (en)2001-06-272003-01-02Yale Thomas W.Natural language processing system and method for knowledge management
US20040015342A1 (en)2002-02-152004-01-22Garst Peter F.Linguistic support for a recognizer of mathematical expressions
US20030182102A1 (en)2002-03-202003-09-25Simon Corston-OliverSentence realization model for a natural language generation system
US20040083092A1 (en)*2002-09-122004-04-29Valles Luis CalixtoApparatus and methods for developing conversational applications
US20040103116A1 (en)2002-11-262004-05-27Lingathurai PalanisamyIntelligent retrieval and classification of information from a product manual
US20040138899A1 (en)2003-01-132004-07-15Lawrence BirnbaumInteractive task-sensitive assistant
US20040174397A1 (en)2003-03-052004-09-09Paul CereghiniIntegration of visualizations, reports, and data
US7825929B2 (en)2003-04-042010-11-02Agilent Technologies, Inc.Systems, tools and methods for focus and context viewing of large collections of graphs
US7840448B2 (en)2003-05-072010-11-23Cbs Interactive Inc.System and method for automatically generating a narrative product summary
US8630919B2 (en)2003-05-072014-01-14Cbs Interactive Inc.System and method for generating a narrative summary
US20040225651A1 (en)2003-05-072004-11-11Musgrove Timothy A.System and method for automatically generating a narrative product summary
US20130091031A1 (en)2003-05-072013-04-11Cbs Interactive Inc.System and method for generating an alternative product recommendation
US20040230989A1 (en)2003-05-162004-11-18Macey William H.Method and apparatus for survey processing
US20040255232A1 (en)2003-06-112004-12-16Northwestern UniversityNetworked presentation system
US20060271535A1 (en)2003-07-302006-11-30Northwestern UniversityMethod and system for assessing relevant properties of work contexts for use by information services
US7836010B2 (en)2003-07-302010-11-16Northwestern UniversityMethod and system for assessing relevant properties of work contexts for use by information services
US20050027704A1 (en)2003-07-302005-02-03Northwestern UniversityMethod and system for assessing relevant properties of work contexts for use by information services
US20060277168A1 (en)2003-07-302006-12-07Northwestern UniversityMethod and system for assessing relevant properties of work contexts for use by information services
US20050028156A1 (en)2003-07-302005-02-03Northwestern UniversityAutomatic method and system for formulating and transforming representations of context used by information services
US20060212446A1 (en)2003-07-302006-09-21Northwestern UniversityMethod and system for assessing relevant properties of work contexts for use by information services
US20050125213A1 (en)2003-12-042005-06-09Yin ChenApparatus, system, and method for modeling and analyzing a plurality of computing workloads
US20090144608A1 (en)2004-01-062009-06-04Lionel OiselDevice and method for creating summaries of multimedia documents
US8612208B2 (en)2004-04-072013-12-17Oracle Otc Subsidiary LlcOntology for use with a system, method, and computer readable medium for retrieving information and response to a query
US20050273362A1 (en)2004-06-022005-12-08Catalis, Inc.Method and system for generating medical narrative
US7496621B2 (en)2004-07-142009-02-24International Business Machines CorporationMethod, program, and apparatus for natural language generation
US7577634B2 (en)2004-08-052009-08-18First Look Networks LlcMethod and apparatus for automatically providing expert analysis-based advice
US20060031182A1 (en)2004-08-052006-02-09First Look Networks LlcMethod and apparatus for automatically providing expert analysis-based advice
US20060101335A1 (en)2004-11-082006-05-11Pisciottano Maurice AMethod and apparatus for generating and storing data and for generating a narrative report
US20060253431A1 (en)2004-11-122006-11-09Sense, Inc.Techniques for knowledge discovery by constructing knowledge correlations using terms
US7865496B1 (en)2004-11-302011-01-04Schiller Victor HSystems, device, and methods for searching
US7778895B1 (en)2004-12-152010-08-17Intuit Inc.User interface for displaying imported tax data in association with tax line assignments
US7930169B2 (en)2005-01-142011-04-19Classified Ventures, LlcMethods and systems for generating natural language descriptions from data
US20060218485A1 (en)2005-03-252006-09-28Daniel BlumenthalProcess for automatic data annotation, selection, and utilization
US20070136657A1 (en)2005-03-252007-06-14Daniel BlumenthalProcess for Automatic Data Annotation, Selection, and Utilization.
US20060224570A1 (en)2005-03-312006-10-05Quiroga Martin ANatural language based search engine for handling pronouns and methods of use therefor
US20060253783A1 (en)2005-05-092006-11-09Microsoft CorporationStory template structures associated with story enhancing content and rules
WO2006122329A2 (en)2005-05-112006-11-16Planetwide Games, Inc.Creating publications using gaming-based media content
US20130275121A1 (en)*2005-08-012013-10-17Evi Technologies LimitedKnowledge repository
US20070132767A1 (en)2005-11-302007-06-14William WrightSystem 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-272015-03-10Linguastat, Inc.Customizing information by combining pair of annotations from at least two different documents
US7617199B2 (en)2006-01-312009-11-10Northwestern UniversityCharacterizing context-sensitive search results as non-spam
US20070185865A1 (en)2006-01-312007-08-09Intellext, Inc.Methods and apparatus for generating a search results model at a search engine
US20070185863A1 (en)2006-01-312007-08-09Intellext, Inc.Methods and apparatus for characterizing a search result as potential spam
US20070185846A1 (en)2006-01-312007-08-09Intellext, Inc.Methods and apparatus for organizing search results
US20070185862A1 (en)2006-01-312007-08-09Intellext, Inc.Methods and apparatus for determining if a search query should be issued
US20070185861A1 (en)2006-01-312007-08-09Intellext, Inc.Methods and apparatus for chaining search results
US20070185847A1 (en)2006-01-312007-08-09Intellext, Inc.Methods and apparatus for filtering search results
US20070185864A1 (en)2006-01-312007-08-09Intellext, Inc.Methods and apparatus for displaying ranked search results
US7657518B2 (en)2006-01-312010-02-02Northwestern UniversityChaining context-sensitive search results
US7644072B2 (en)2006-01-312010-01-05Perfect Market, Inc.Generating a ranked list of search results via result modeling
US7610279B2 (en)2006-01-312009-10-27Perfect Market, Inc.Filtering context-sensitive search results
US7627565B2 (en)2006-01-312009-12-01Northwestern UniversityOrganizing context-sensitive search results
US7617200B2 (en)2006-01-312009-11-10Northwestern UniversityDisplaying context-sensitive ranked search results
US20070250479A1 (en)2006-04-202007-10-25Christopher LuntSystem and Method For Facilitating Collaborative Generation of Life Stories
US20070250826A1 (en)2006-04-212007-10-25O'brien Wayne PComputer program generating
US20080005677A1 (en)2006-06-302008-01-03Business Objects, S.A.Apparatus and method for visualizing data
US8463695B2 (en)2006-11-022013-06-11O2 Media LlcSystem, report, and computer-readable medium for analyzing a stock portfolio
US7716116B2 (en)2006-11-022010-05-11Vhs, LlcSystem, report, and computer-readable medium for analyzing a stock portfolio
US20080140696A1 (en)2006-12-072008-06-12Pantheon Systems, Inc.System and method for analyzing data sources to generate metadata
US20080198156A1 (en)2007-02-192008-08-21Cognos IncorporatedSystem and method of report rendering
US20080250070A1 (en)2007-03-292008-10-09Abdulla Abdulla MCreating a report having computer generated narrative text
US20080256066A1 (en)2007-04-102008-10-16Tikatok Inc.Book creation systems and methods
US20080304808A1 (en)2007-06-052008-12-11Newell Catherine DAutomatic story creation using semantic classifiers for digital assets and associated metadata
US20080306882A1 (en)2007-06-062008-12-11Vhs, Llc.System, Report, and Method for Generating Natural Language News-Based Stories
US8676691B2 (en)2007-06-062014-03-18O2 Media LlcSystem, report, and method for generating natural language news-based stories
US7856390B2 (en)2007-06-062010-12-21Vhs, LlcSystem, report, and method for generating natural language news-based stories
US8494944B2 (en)2007-06-062013-07-23O2 Media, LLCSystem, report, and method for generating natural language news-based stories
US20110087486A1 (en)2007-06-062011-04-14Vhs, LlcSystem, report, and method for generating natural language news-based stories
US7818329B2 (en)2007-06-072010-10-19International Business Machines CorporationMethod and apparatus for automatic multimedia narrative enrichment
US20080313130A1 (en)2007-06-142008-12-18Northwestern UniversityMethod and System for Retrieving, Selecting, and Presenting Compelling Stories form Online Sources
US20090049041A1 (en)2007-06-292009-02-19Allvoices, Inc.Ranking content items related to an event
US20090030899A1 (en)2007-06-292009-01-29Allvoices, Inc.Processing a content item with regard to an event and a location
US20090019013A1 (en)2007-06-292009-01-15Allvoices, Inc.Processing a content item with regard to an event
US8645124B2 (en)2007-08-012014-02-04Ginger Software, Inc.Automatic context sensitive language generation, correction and enhancement using an internet corpus
US20100241620A1 (en)2007-09-192010-09-23Paul ManisterApparatus and method for document processing
US20090083288A1 (en)2007-09-212009-03-26Neurolanguage CorporationCommunity Based Internet Language Training Providing Flexible Content Delivery
US20090089100A1 (en)2007-10-012009-04-02Valeriy NenovClinical information system
US20140351281A1 (en)*2007-10-042014-11-27Amazon Technologies, Inc.Enhanced knowledge repository
US20090144609A1 (en)2007-10-172009-06-04Jisheng LiangNLP-based entity recognition and disambiguation
US20090157664A1 (en)2007-12-132009-06-18Chih Po WenSystem for extracting itineraries from plain text documents and its application in online trip planning
US8762285B2 (en)2008-01-062014-06-24Yahoo! Inc.System and method for message clustering
US8046226B2 (en)2008-01-182011-10-25Cyberpulse, L.L.C.System and methods for reporting
US20100325107A1 (en)2008-02-222010-12-23Christopher KentonSystems and methods for measuring and managing distributed online conversations
US20140201202A1 (en)*2008-05-012014-07-17Chacha Search, IncMethod and system for improvement of request processing
US20110213642A1 (en)2008-05-212011-09-01The Delfin Project, Inc.Management system for a conversational system
US9870629B2 (en)2008-06-202018-01-16New Bis Safe Luxco S.À R.LMethods, apparatus and systems for data visualization and related applications
US20110261049A1 (en)2008-06-202011-10-27Business Intelligence Solutions Safe B.V.Methods, apparatus and systems for data visualization and related applications
US8812311B2 (en)2008-10-272014-08-19Frank Elmo WeberCharacter-based automated shot summarization
US8442940B1 (en)2008-11-182013-05-14Semantic Research, Inc.Systems and methods for pairing of a semantic network and a natural language processing information extraction system
US9164982B1 (en)2008-11-252015-10-20Yseop SaMethods and apparatus for automatically generating text
US20100185984A1 (en)2008-12-022010-07-22William WrightSystem and method for visualizing connected temporal and spatial information as an integrated visual representation on a user interface
US20100161541A1 (en)2008-12-192010-06-24Eastman Kodak CompanySystem and method for generating a context enhanced work of communication
US20110113334A1 (en)2008-12-312011-05-12Microsoft CorporationExperience streams for rich interactive narratives
US20110113315A1 (en)2008-12-312011-05-12Microsoft CorporationComputer-assisted rich interactive narrative (rin) generation
US8311863B1 (en)2009-02-242012-11-13Accenture Global Services LimitedUtility high performance capability assessment
US20120166180A1 (en)*2009-03-232012-06-28Lawrence AuCompassion, Variety and Cohesion For Methods Of Text Analytics, Writing, Search, User Interfaces
US20140040312A1 (en)2009-04-232014-02-06Glace Holding LlcSystems and methods for storage of declarative knowledge accessible by natural language in a computer capable of appropriately responding
US20150186504A1 (en)2009-04-232015-07-02Deep Sky Concepts, Inc.In-context access of stored declarative knowledge using natural language expression
US20110044447A1 (en)2009-08-212011-02-24Nexidia Inc.Trend discovery in audio signals
US20110078105A1 (en)2009-09-292011-03-31PandorabotsMethod for personalizing chat bots
US20170060857A1 (en)2009-10-202017-03-02Doug IMBRUCESystems and methods for assembling and/or displaying multimedia objects, modules or presentations
US20110246182A1 (en)2010-04-062011-10-06Statsheet, Inc.Systems for dynamically generating and presenting narrative content
US20160019200A1 (en)2010-04-062016-01-21Automated Insights, Inc.Systems for dynamically generating and presenting narrative content
US8515737B2 (en)2010-04-062013-08-20Automated Insights, Inc.Systems for dynamically generating and presenting narrative content
US20110249953A1 (en)2010-04-092011-10-13Microsoft CorporationAutomated story generation
US8447604B1 (en)2010-04-122013-05-21Adobe Systems IncorporatedMethod and apparatus for processing scripts and related data
US20130144606A1 (en)2010-05-132013-06-06Northwestern UniversitySystem and Method for Using Data and Derived Features to Automatically Generate a Narrative Story
US8374848B1 (en)2010-05-132013-02-12Northwestern UniversitySystem and method for using data and derived features to automatically generate a narrative story
US9720884B2 (en)2010-05-132017-08-01Narrative Science Inc.System and method for using data and angles to automatically generate a narrative story
US20180285324A1 (en)2010-05-132018-10-04Narrative Science Inc.System and Method for Using Data and Angles to Automatically Generate a Narrative Story
US10482381B2 (en)2010-05-132019-11-19Narrative Science Inc.Method and apparatus for triggering the automatic generation of narratives
US9396168B2 (en)2010-05-132016-07-19Narrative Science, Inc.System and method for using data and angles to automatically generate a narrative story
US9251134B2 (en)2010-05-132016-02-02Narrative Science Inc.System and method for using data and angles to automatically generate a narrative story
US8688434B1 (en)2010-05-132014-04-01Narrative Science Inc.System and method for using data to automatically generate a narrative story
US8355903B1 (en)2010-05-132013-01-15Northwestern UniversitySystem and method for using data and angles to automatically generate a narrative story
US10489488B2 (en)2010-05-132019-11-26Narrative Science Inc.System and method for using data and angles to automatically generate a narrative story
US8843363B2 (en)2010-05-132014-09-23Narrative Science Inc.System and method for using data and derived features to automatically generate a narrative story
US9990337B2 (en)2010-05-132018-06-05Narrative Science Inc.System and method for using data and angles to automatically generate a narrative story
US10956656B2 (en)2010-05-132021-03-23Narrative Science Inc.System and method for using data and angles to automatically generate a narrative story
US20210192132A1 (en)2010-05-132021-06-24Narrative Science Inc.System and Method for Using Data and Angles to Automatically Generate a Narrative Story
US20130145242A1 (en)2010-05-132013-06-06Northwestern UniversitySystem and Method for Using Data and Angles to Automatically Generate a Narrative Story
US20200089735A1 (en)2010-05-132020-03-19Narrative Science Inc.System and Method for Using Data and Angles to Automatically Generate a Narrative Story
US20110307435A1 (en)*2010-05-142011-12-15True Knowledge LtdExtracting structured knowledge from unstructured text
US20150356463A1 (en)*2010-05-142015-12-10Amazon Technologies, Inc.Extracting structured knowledge from unstructured text
US20120069131A1 (en)2010-05-282012-03-22Abelow Daniel HReality alternate
US20110295903A1 (en)2010-05-282011-12-01Drexel UniversitySystem and method for automatically generating systematic reviews of a scientific field
US20110311144A1 (en)2010-06-172011-12-22Microsoft CorporationRgb/depth camera for improving speech recognition
US20110314381A1 (en)2010-06-212011-12-22Microsoft CorporationNatural user input for driving interactive stories
US20120143849A1 (en)2010-10-082012-06-07Pak Chung WongData Graphing Methods, Articles Of Manufacture, And Computing Devices
US20120109637A1 (en)2010-11-012012-05-03Yahoo! Inc.Extracting rich temporal context for business entities and events
US20120158850A1 (en)2010-12-212012-06-21Harrison Edward RMethod and apparatus for automatically creating an experiential narrative
US8892417B1 (en)2011-01-072014-11-18Narrative Science, Inc.Method and apparatus for triggering the automatic generation of narratives
US10755042B2 (en)2011-01-072020-08-25Narrative Science Inc.Automatic generation of narratives from data using communication goals and narrative analytics
US9208147B1 (en)2011-01-072015-12-08Narrative Science Inc.Method and apparatus for triggering the automatic generation of narratives
US9576009B1 (en)2011-01-072017-02-21Narrative Science Inc.Automatic generation of narratives from data using communication goals and narrative analytics
US8630844B1 (en)2011-01-072014-01-14Narrative Science Inc.Configurable and portable method, apparatus, and computer program product for generating narratives using content blocks, angels and blueprints sets
US9697178B1 (en)2011-01-072017-07-04Narrative Science Inc.Use of tools and abstraction in a configurable and portable system for generating narratives
US9697197B1 (en)2011-01-072017-07-04Narrative Science Inc.Automatic generation of narratives from data using communication goals and narrative analytics
US20180260380A1 (en)2011-01-072018-09-13Narrative Science Inc.Automatic Generation of Narratives from Data Using Communication Goals and Narrative Analytics
US9697492B1 (en)2011-01-072017-07-04Narrative Science Inc.Automatic generation of narratives from data using communication goals and narrative analytics
US8775161B1 (en)2011-01-072014-07-08Narrative Science Inc.Method and apparatus for triggering the automatic generation of narratives
US9977773B1 (en)2011-01-072018-05-22Narrative Science Inc.Automatic generation of narratives from data using communication goals and narrative analytics
US8886520B1 (en)2011-01-072014-11-11Narrative Science Inc.Method and apparatus for triggering the automatic generation of narratives
US9720899B1 (en)2011-01-072017-08-01Narrative Science, Inc.Automatic generation of narratives from data using communication goals and narrative analytics
US10657201B1 (en)2011-01-072020-05-19Narrative Science Inc.Configurable and portable system for generating narratives
US20140129942A1 (en)2011-05-032014-05-08Yogesh Chunilal RathodSystem and method for dynamically providing visual action or activity news feed
US10019512B2 (en)2011-05-272018-07-10International Business Machines CorporationAutomated self-service user support based on ontology analysis
US10037377B2 (en)2011-05-272018-07-31International Business Machines CorporationAutomated self-service user support based on ontology analysis
US20120310699A1 (en)2011-06-022012-12-06Siemens CorporationApproach and tool blending ad-hoc and formal workflow models in support of different stakeholder needs
US20130187926A1 (en)2011-07-082013-07-25Steamfunk Labs, Inc.Automated presentation of information using infographics
US20130041677A1 (en)2011-08-122013-02-14Drchrono.Com IncDynamic Forms
US20130211855A1 (en)2011-08-292013-08-15LeAnne M. EberleAlgorithm for narrative generation
US8645825B1 (en)2011-08-312014-02-04Google Inc.Providing autocomplete suggestions
US20150134694A1 (en)2011-09-062015-05-14Shl Group LtdAnalytics
US20130096947A1 (en)2011-10-132013-04-18The Board of Trustees of the Leland Stanford Junior, UniversityMethod and System for Ontology Based Analytics
US20130144605A1 (en)2011-12-062013-06-06Mehrman Law Office, PCText Mining Analysis and Output System
US20140356833A1 (en)2011-12-272014-12-04Koninklijke Philips N.V.Generating information relating to a course of a procedure
US20130174026A1 (en)2011-12-282013-07-04Cbs Interactive Inc.Techniques for providing a natural language narrative
US20130173285A1 (en)2011-12-302013-07-04Elwha LlcEvidence-based healthcare information management protocols
US20130185049A1 (en)2012-01-122013-07-18International Business Machines CorporationPredicting Pronouns for Pro-Drop Style Languages for Natural Language Translation
US20130185051A1 (en)2012-01-162013-07-18Google Inc.Techniques for generating outgoing messages based on language, internationalization, and localization preferences of the recipient
US20170140405A1 (en)2012-03-012017-05-18o9 Solutions, Inc.Global market modeling for advanced market intelligence
US20130238316A1 (en)2012-03-072013-09-12Infosys LimitedSystem and Method for Identifying Text in Legal documents for Preparation of Headnotes
US20130238330A1 (en)2012-03-082013-09-12Nuance Communications, Inc.Methods and apparatus for generating clinical reports
US20130246300A1 (en)2012-03-132013-09-19American Express Travel Related Services Company, Inc.Systems and Methods for Tailoring Marketing
US20130253910A1 (en)*2012-03-232013-09-26Sententia, LLCSystems and Methods for Analyzing Digital Communications
US20130262092A1 (en)2012-04-022013-10-03Fantasy Journalist, Inc.Narrative Generator
US20160314121A1 (en)*2012-04-022016-10-27Taiger Spain SlSystem and method for natural language querying
US8892419B2 (en)2012-04-102014-11-18Artificial Solutions Iberia SLSystem and methods for semiautomatic generation and tuning of natural language interaction applications
US8903711B2 (en)2012-04-102014-12-02Artificial Solutions Iberia, S.L.System and methods for semiautomatic generation and tuning of natural language interaction applications
US20130304507A1 (en)2012-04-202013-11-14Valant Medical Solutions, Inc.Clinical note generator
US9396758B2 (en)2012-05-012016-07-19Wochit, Inc.Semi-automatic generation of multimedia content
US20130316834A1 (en)2012-05-242013-11-28Sap AgArtificial Intelligence Avatar to Engage Players During Game Play
US20140006012A1 (en)2012-07-022014-01-02Microsoft CorporationLearning-Based Processing of Natural Language Questions
US20140075004A1 (en)2012-08-292014-03-13Dennis A. Van DusenSystem And Method For Fuzzy Concept Mapping, Voting Ontology Crowd Sourcing, And Technology Prediction
WO2014035406A1 (en)2012-08-302014-03-06Data2Text LimitedMethod and apparatus for configurable microplanning
US9355093B2 (en)2012-08-302016-05-31Arria Data2Text LimitedMethod and apparatus for referring expression generation
US20150242384A1 (en)2012-08-302015-08-27Arria Data2Text LimitedMethod and apparatus for annotating a graphical output
WO2014035403A1 (en)2012-08-302014-03-06Data2Text LimitedMethod and apparatus for annotating a graphical output
US9135244B2 (en)2012-08-302015-09-15Arria Data2Text LimitedMethod and apparatus for configurable microplanning
US20140062712A1 (en)2012-08-302014-03-06Data2Text LimitedMethod and apparatus for alert validation
WO2014035407A1 (en)2012-08-302014-03-06Data2Text LimitedMethod and apparatus for referring expression generation
WO2014035402A1 (en)2012-08-302014-03-06Data2Text LimitedText generation in response to alerts, using tree structures
US20150169548A1 (en)2012-08-302015-06-18Arria Data2Text LimitedMethod and apparatus for referring expression generation
US20140375466A1 (en)2012-08-302014-12-25Arria Data2Text LimitedMethod and apparatus for alert validation
US8762133B2 (en)2012-08-302014-06-24Arria Data2Text LimitedMethod and apparatus for alert validation
US9323743B2 (en)2012-08-302016-04-26Arria Data2Text LimitedMethod and apparatus for situational analysis text generation
US8762134B2 (en)2012-08-302014-06-24Arria Data2Text LimitedMethod and apparatus for situational analysis text generation
US9405448B2 (en)2012-08-302016-08-02Arria Data2Text LimitedMethod and apparatus for annotating a graphical output
WO2014035400A1 (en)2012-08-302014-03-06Data2Text LimitedMethod and apparatus for alert validation
US10565308B2 (en)2012-08-302020-02-18Arria Data2Text LimitedMethod and apparatus for configurable microplanning
WO2014035447A1 (en)2012-08-302014-03-06Data2Text LimitedMethod and apparatus for updating a previously generated text
US20160132489A1 (en)2012-08-302016-05-12Arria Data2Text LimitedMethod and apparatus for configurable microplanning
US9336193B2 (en)2012-08-302016-05-10Arria Data2Text LimitedMethod and apparatus for updating a previously generated text
US9536049B2 (en)2012-09-072017-01-03Next It CorporationConversational virtual healthcare assistant
WO2014070197A1 (en)2012-11-022014-05-08Data2Text LimitedMethod and apparatus for aggregating with information generalization
US20150324347A1 (en)2012-11-022015-11-12Arria Data2Text LimitedMethod and apparatus for aggregating with information generalization
US20140134590A1 (en)2012-11-092014-05-15Steven Richard Hiscock Jr.Progress Tracking And Management System
US20150324351A1 (en)2012-11-162015-11-12Arria Data2Text LimitedMethod and apparatus for expressing time in an output text
WO2014076524A1 (en)2012-11-162014-05-22Data2Text LimitedMethod and apparatus for spatial descriptions in an output text
WO2014076525A1 (en)2012-11-162014-05-22Data2Text LimitedMethod and apparatus for expressing time in an output text
US20150324374A1 (en)2012-11-162015-11-12Arria Data2Text LimitedMethod and apparatus for spatial descriptions in an output text
US20150261745A1 (en)2012-11-292015-09-17Dezhao SongTemplate bootstrapping for domain-adaptable natural language generation
US10095692B2 (en)2012-11-292018-10-09Thornson Reuters Global Resources Unlimited CompanyTemplate bootstrapping for domain-adaptable natural language generation
US9424254B2 (en)2012-11-292016-08-23Thomson Reuters Global ResouresSystems and methods for natural language generation
US9529795B2 (en)2012-11-292016-12-27Thomson Reuters Global ResourcesSystems and methods for natural language generation
US20140149107A1 (en)2012-11-292014-05-29Frank SchilderSystems and methods for natural language generation
US20150227508A1 (en)2012-11-292015-08-13Blake HowaldSystems and methods for natural language generation
US20150268930A1 (en)2012-12-062015-09-24Korea University Research And Business FoundationApparatus and method for extracting semantic topic
US20150347400A1 (en)2012-12-272015-12-03Arria Data2Text LimitedMethod and apparatus for motion description
WO2014102568A1 (en)2012-12-272014-07-03Arria Data2Text LimitedMethod and apparatus for motion detection
WO2014102569A1 (en)2012-12-272014-07-03Arria Data2Text LimitedMethod and apparatus for motion description
US20150325000A1 (en)2012-12-272015-11-12Arria Data2Text LimitedMethod and apparatus for motion detection
WO2014111753A1 (en)2013-01-152014-07-24Arria Data2Text LimitedMethod and apparatus for document planning
US20150363364A1 (en)2013-01-152015-12-17Arria Data2Text LimitedMethod and apparatus for document planning
US20140208215A1 (en)2013-01-212014-07-24Salesforce.Com, Inc.Methods and systems for providing filtered report visualizations
US20140314225A1 (en)2013-03-152014-10-23Genesys Telecommunications Laboratories, Inc.Intelligent automated agent for a contact center
US10185477B1 (en)2013-03-152019-01-22Narrative Science Inc.Method and system for configuring automatic generation of narratives from data
US10579835B1 (en)2013-05-222020-03-03Sri InternationalSemantic pre-processing of natural language input in a virtual personal assistant
US20140372850A1 (en)2013-06-152014-12-18Microsoft CorporationTelling Interactive, Self-Directed Stories with Spreadsheets
US9697192B1 (en)2013-06-282017-07-04Digital Reasoning Systems, Inc.Systems and methods for construction, maintenance, and improvement of knowledge representations
US9348815B1 (en)2013-06-282016-05-24Digital Reasoning Systems, Inc.Systems and methods for construction, maintenance, and improvement of knowledge representations
US9535902B1 (en)2013-06-282017-01-03Digital Reasoning Systems, Inc.Systems and methods for entity resolution using attributes from structured and unstructured data
US9665259B2 (en)2013-07-122017-05-30Microsoft Technology Licensing, LlcInteractive digital displays
US20150032730A1 (en)2013-07-232015-01-29Aware, Inc.Data Analysis Engine
US20150049951A1 (en)2013-08-152015-02-19International Business Machines CorporationPresenting meaningful information summary for analyzing complex visualizations
US9946711B2 (en)2013-08-292018-04-17Arria Data2Text LimitedText generation from correlated alerts
US20160217133A1 (en)2013-08-292016-07-28Arria Data2Text LimitedText generation from correlated alerts
WO2015028844A1 (en)2013-08-292015-03-05Arria Data2Text LimitedText generation from correlated alerts
US9396181B1 (en)2013-09-162016-07-19Arria Data2Text LimitedMethod, apparatus, and computer program product for user-directed reporting
US9244894B1 (en)2013-09-162016-01-26Arria Data2Text LimitedMethod and apparatus for interactive reports
US20150078232A1 (en)2013-09-162015-03-19Disney Enterprises, Inc.Storytelling simulator and device communication
US20160140090A1 (en)2013-09-162016-05-19Arria Data2Text LimitedMethod and apparatus for interactive reports
US20150088808A1 (en)2013-09-232015-03-26Sap AgDynamic Determination of Pattern Type and Chart Type for Visual Analytics
US20150142704A1 (en)2013-11-202015-05-21Justin LondonAdaptive Virtual Intelligent Agent
US20150161997A1 (en)2013-12-052015-06-11Lenovo (Singapore) Pte. Ltd.Using context to interpret natural language speech recognition commands
US9971967B2 (en)2013-12-122018-05-15International Business Machines CorporationGenerating a superset of question/answer action paths based on dynamically generated type sets
US9483520B1 (en)2013-12-182016-11-01EMC IP Holding Company LLCAnalytic data focus representations for visualization generation in an information processing system
US20150178386A1 (en)2013-12-192015-06-25Heiner OberkampfSystem and Method for Extracting Measurement-Entity Relations
US10073840B2 (en)2013-12-202018-09-11Microsoft Technology Licensing, LlcUnsupervised relation detection model training
US20150227588A1 (en)2014-02-072015-08-13Quixey, Inc.Rules-Based Generation of Search Results
US20150249584A1 (en)2014-02-282015-09-03Cellco Partnership D/B/A Verizon WirelessMethod and apparatus for providing an anti-bullying service
US20160026253A1 (en)2014-03-112016-01-28Magic Leap, Inc.Methods and systems for creating virtual and augmented reality
US20170185674A1 (en)2014-04-022017-06-29Semantic Technologies Pty LtdOntology mapping method and apparatus
US20150286747A1 (en)2014-04-022015-10-08Microsoft CorporationEntity and attribute resolution in conversational applications
WO2015159133A1 (en)2014-04-182015-10-22Arria Data2Text LimitedMethod and apparatus for document planning
US20160232152A1 (en)2014-04-182016-08-11Arria Data2Text LimitedMethod and apparatus for document planning
US20150331846A1 (en)2014-05-132015-11-19International Business Machines CorporationTable narration using narration templates
US20150332665A1 (en)2014-05-132015-11-19At&T Intellectual Property I, L.P.System and method for data-driven socially customized models for language generation
US20150331850A1 (en)2014-05-162015-11-19Sierra Nevada CorporationSystem for semantic interpretation
US20150347901A1 (en)2014-05-272015-12-03International Business Machines CorporationGenerating Written Content from Knowledge Management Systems
US20150356967A1 (en)2014-06-082015-12-10International Business Machines CorporationGenerating Narrative Audio Works Using Differentiable Text-to-Speech Voices
US9460075B2 (en)2014-06-172016-10-04International Business Machines CorporationSolving and answering arithmetic and algebraic problems using natural language processing
US20160027125A1 (en)2014-07-252016-01-28Wealthchart LimitedReport Generation
US20160054889A1 (en)2014-08-212016-02-25The Boeing CompanyIntegrated visualization and analysis of a complex system
US20160062604A1 (en)2014-08-292016-03-03Nuance Communications, Inc.Virtual assistant development system
US10698585B2 (en)2014-08-292020-06-30Nuance Communications, Inc.Virtual assistant development system
US9430557B2 (en)2014-09-172016-08-30International Business Machines CorporationAutomatic data interpretation and answering analytical questions with tables and charts
US20160103559A1 (en)2014-10-092016-04-14Splunk Inc.Graphical user interface for static and adaptive thresholds
US10101889B2 (en)2014-10-102018-10-16Salesforce.Com, Inc.Dashboard builder with live data updating without exiting an edit mode
US9767145B2 (en)2014-10-102017-09-19Salesforce.Com, Inc.Visual data analysis with animated informational morphing replay
US10747823B1 (en)2014-10-222020-08-18Narrative Science Inc.Interactive and conversational data exploration
US11288328B2 (en)2014-10-222022-03-29Narrative Science Inc.Interactive and conversational data exploration
US9870362B2 (en)2014-11-112018-01-16Microsoft Technology Licensing, LlcInteractive data-driven presentations
US10387970B1 (en)2014-11-252019-08-20Intuit Inc.Systems and methods for analyzing and generating explanations for changes in tax return results
US20160162582A1 (en)2014-12-092016-06-09Moodwire, Inc.Method and system for conducting an opinion search engine and a display thereof
US20160196491A1 (en)2015-01-022016-07-07International Business Machines CorporationMethod For Recommending Content To Ingest As Corpora Based On Interaction History In Natural Language Question And Answering Systems
US20170006135A1 (en)2015-01-232017-01-05C3, Inc.Systems, methods, and devices for an enterprise internet-of-things application development platform
US20160232221A1 (en)2015-02-062016-08-11International Business Machines CorporationCategorizing Questions in a Question Answering System
US10162900B1 (en)2015-03-092018-12-25Interos Solutions Inc.Method and system of an opinion search engine with an application programming interface for providing an opinion web portal
US10621183B1 (en)2015-03-092020-04-14Interos 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-142017-08-22International Business Machines CorporationMobile interactive comparison chart
US20160314123A1 (en)2015-04-242016-10-27Salesforce.Com, Inc.Identifying entities in semi-structured content
US20170213157A1 (en)2015-07-172017-07-27Knoema CorporationMethod and system to provide related data
US20170017897A1 (en)2015-07-172017-01-19Knoema CorporationMethod and system to provide related data
US20170024465A1 (en)2015-07-242017-01-26Nuance Communications, Inc.System and method for natural language driven search and discovery in large data sources
US20170026705A1 (en)2015-07-242017-01-26Nuance Communications, Inc.System and method for natural language driven search and discovery in large data sources
US20170061093A1 (en)2015-08-252017-03-02Rubendran AmarasinghamClinical Dashboard User Interface System and Method
US10073861B2 (en)2015-09-032018-09-11Disney Enterprises, Inc.Story albums
US10332297B1 (en)2015-09-042019-06-25Vishal VadodariaElectronic note graphical user interface having interactive intelligent agent and specific note processing features
US20170068551A1 (en)2015-09-042017-03-09Vishal VadodariaIntelli-voyage travel
US10049152B2 (en)2015-09-242018-08-14International Business Machines CorporationGenerating natural language dialog using a questions corpus
US20170091291A1 (en)2015-09-302017-03-30International Business Machines CorporationHistorical summary visualizer for news events
US20170116327A1 (en)2015-10-212017-04-27Fast Forward Labs, Inc.Computerized method of generating and analytically evaluating multiple instances of natural language-generated text
US20170124062A1 (en)2015-10-292017-05-04Yahoo! Inc.Automated personalized electronic message composition
US11238090B1 (en)*2015-11-022022-02-01Narrative Science Inc.Applied artificial intelligence technology for using narrative analytics to automatically generate narratives from visualization data
US11170038B1 (en)*2015-11-022021-11-09Narrative Science Inc.Applied artificial intelligence technology for using narrative analytics to automatically generate narratives from multiple visualizations
US11188588B1 (en)*2015-11-022021-11-30Narrative Science Inc.Applied artificial intelligence technology for using narrative analytics to interactively generate narratives from visualization data
US11222184B1 (en)*2015-11-022022-01-11Narrative Science Inc.Applied artificial intelligence technology for using narrative analytics to automatically generate narratives from bar charts
US11232268B1 (en)*2015-11-022022-01-25Narrative Science Inc.Applied artificial intelligence technology for using narrative analytics to automatically generate narratives from line charts
US20220114206A1 (en)2015-11-022022-04-14Narrative Science Inc.Applied Artificial Intelligence Technology for Automatically Generating Narratives from Visualization Data
US20180314689A1 (en)2015-12-222018-11-01Sri InternationalMulti-lingual virtual personal assistant
US20170212671A1 (en)2016-01-212017-07-27Samsung Electronics Co., Ltd.Method and system for providing topic view in electronic device
US20170228372A1 (en)2016-02-082017-08-10Taiger Spain SlSystem and method for querying questions and answers
US20170270105A1 (en)2016-03-152017-09-21Arria Data2Text LimitedMethod and apparatus for generating causal explanations using models derived from data
US20170293864A1 (en)2016-04-082017-10-12BPU International, Inc.System and Method for Searching and Matching Content Over Social Networks Relevant to an Individual
US20170358295A1 (en)2016-06-102017-12-14Conduent Business Services, LlcNatural language generation, a hybrid sequence-to-sequence approach
US20170371856A1 (en)2016-06-222017-12-28Sas Institute Inc.Personalized summary generation of data visualizations
US9569729B1 (en)2016-07-202017-02-14Chenope, Inc.Analytical system and method for assessing certain characteristics of organizations
US20180025726A1 (en)2016-07-222018-01-25International Business Machines CorporationCreating coordinated multi-chatbots using natural dialogues by means of knowledge base
US11037342B1 (en)2016-07-312021-06-15Splunk Inc.Visualization modules for use within a framework for displaying interactive visualizations of event data
US10853583B1 (en)2016-08-312020-12-01Narrative Science Inc.Applied artificial intelligence technology for selective control over narrative generation from visualizations of data
US11341338B1 (en)2016-08-312022-05-24Narrative Science Inc.Applied artificial intelligence technology for interactively using narrative analytics to focus and control visualizations of data
US11144838B1 (en)2016-08-312021-10-12Narrative Science Inc.Applied artificial intelligence technology for evaluating drivers of data presented in visualizations
US20180089177A1 (en)2016-09-292018-03-29Bong Han CHOMathematical translator, a mathematical translation device and a mathematical translation platform
US11055497B2 (en)2016-12-292021-07-06Ncsoft CorporationNatural language generation of sentence sequences from textual data with paragraph generation model
US20180189284A1 (en)2016-12-292018-07-05Wipro LimitedSystem and method for dynamically creating a domain ontology
US20180300311A1 (en)2017-01-112018-10-18Satyanarayana KrishnamurthySystem and method for natural language generation
US20180232443A1 (en)2017-02-162018-08-16Globality, Inc.Intelligent matching system with ontology-aided relation extraction
US10699079B1 (en)*2017-02-172020-06-30Narrative Science Inc.Applied artificial intelligence technology for narrative generation based on analysis communication goals
US10762304B1 (en)2017-02-172020-09-01Narrative ScienceApplied artificial intelligence technology for performing natural language generation (NLG) using composable communication goals and ontologies to generate narrative stories
US10572606B1 (en)*2017-02-172020-02-25Narrative Science Inc.Applied artificial intelligence technology for runtime computation of story outlines to support natural language generation (NLG)
US10943069B1 (en)2017-02-172021-03-09Narrative Science Inc.Applied artificial intelligence technology for narrative generation based on a conditional outcome framework
US11068661B1 (en)2017-02-172021-07-20Narrative Science Inc.Applied artificial intelligence technology for narrative generation based on smart attributes
US10585983B1 (en)*2017-02-172020-03-10Narrative Science Inc.Applied artificial intelligence technology for determining and mapping data requirements for narrative stories to support natural language generation (NLG) using composable communication goals
US20210192144A1 (en)2017-02-172021-06-24Narrative Science Inc.Applied Artificial Intelligence Technology for Narrative Generation Based on a Conditional Outcome Framework
US20180261203A1 (en)2017-03-092018-09-13Capital One Services, LlcSystems and methods for providing automated natural language dialogue with customers
US20180293483A1 (en)2017-04-112018-10-11Microsoft Technology Licensing, LlcCreating a Conversational Chat Bot of a Specific Person
US10679011B2 (en)2017-05-102020-06-09Oracle International CorporationEnabling chatbots by detecting and supporting argumentation
US20200202846A1 (en)2017-06-182020-06-25Google LlcProcessing natural language using machine learning to determine slot values based on slot descriptors
US20190042559A1 (en)2017-08-022019-02-07International Business Machines CorporationAnaphora resolution for medical text with machine learning and relevance feedback
US20190102614A1 (en)2017-09-292019-04-04The Mitre CorporationSystems and method for generating event timelines using human language technology
US20190138615A1 (en)2017-11-072019-05-09Thomson Reuters Global Resources Unlimited CompanySystem and methods for context aware searching
US20190147849A1 (en)2017-11-132019-05-16GM Global Technology Operations LLCNatural language generation based on user speech style
US11042708B1 (en)2018-01-022021-06-22Narrative Science Inc.Context saliency-based deictic parser for natural language generation
US11042709B1 (en)2018-01-022021-06-22Narrative Science Inc.Context saliency-based deictic parser for natural language processing
US11023689B1 (en)2018-01-172021-06-01Narrative Science Inc.Applied artificial intelligence technology for narrative generation using an invocable analysis service with analysis libraries
US11003866B1 (en)2018-01-172021-05-11Narrative Science Inc.Applied artificial intelligence technology for narrative generation using an invocable analysis service and data re-organization
US10963649B1 (en)2018-01-172021-03-30Narrative Science Inc.Applied artificial intelligence technology for narrative generation using an invocable analysis service and configuration-driven analytics
US20190236140A1 (en)2018-02-012019-08-01International Business Machines CorporationResponding to an indirect utterance by a conversational system
US11182556B1 (en)*2018-02-192021-11-23Narrative Science Inc.Applied artificial intelligence technology for building a knowledge base using natural language processing
US11126798B1 (en)2018-02-192021-09-21Narrative Science Inc.Applied artificial intelligence technology for conversational inferencing and interactive natural language generation
US11030408B1 (en)2018-02-192021-06-08Narrative Science Inc.Applied artificial intelligence technology for conversational inferencing using named entity reduction
US10599767B1 (en)2018-05-312020-03-24The Ultimate Software Group, Inc.System for providing intelligent part of speech processing of complex natural language
US11042713B1 (en)2018-06-282021-06-22Narrative Scienc Inc.Applied artificial intelligence technology for using natural language processing to train a natural language generation system
US11232270B1 (en)*2018-06-282022-01-25Narrative Science Inc.Applied artificial intelligence technology for using natural language processing to train a natural language generation system with respect to numeric style features
US10706236B1 (en)2018-06-282020-07-07Narrative Science Inc.Applied artificial intelligence technology for using natural language processing and concept expression templates to train a natural language generation system
US11334726B1 (en)2018-06-282022-05-17Narrative Science Inc.Applied artificial intelligence technology for using natural language processing to train a natural language generation system with respect to date and number textual features
US20200074310A1 (en)2018-08-312020-03-05Accenture Global Solutions LimitedReport generation
US10990767B1 (en)2019-01-282021-04-27Narrative Science Inc.Applied artificial intelligence technology for adaptive natural language understanding
US11341330B1 (en)2019-01-282022-05-24Narrative Science Inc.Applied artificial intelligence technology for adaptive natural language understanding with term discovery

Non-Patent Citations (56)

* Cited by examiner, † Cited by third party
Title
Allen et al., "StatsMonkey: A Data-Driven Sports Narrative Writer", Computational Models of Narrative: Papers from the AAAI Fall Symposium, Nov. 2010, 2 pages.
Andersen, P., Hayes, P., Huettner, A., Schmandt, L., Nirenburg, I., and Weinstein, S. (1992). Automatic extraction of facts from press releases to generate news stories. In Proceedings of the third conference on Applied natural language processing. (Trento, Italy). ACM Press, New York, NY, 170-177.
Andre, E., Herzog, G., & Rist, T. (1988). On the simultaneous interpretation of real world image sequences and their natural language description: the system SOCCER. Paper presented at Proceedings of the 8th. European Conference on Artificial Intelligence (ECAI), Munich.
Asset Economics, Inc. (Feb. 11, 2011).
Bailey, P. (1999). Searching for Storiness: Story-Generation from a Reader's Perspective. AAAI Technical Report FS-99-01.
Bethem, T., Burton, J., Caldwell, T., Evans, M., Kittredge, R., Lavoie, B., and Werner, J. (2005). Generation of Real-time Narrative Summaries for Real-time Water Levels and Meteorological Observations in PORTS®. In Proceedings of the Fourth Conference on Artificial Intelligence Applications to Environmental Sciences (AMS-2005), San Diego, California.
Bourbeau, L., Carcagno, D., Goldberg, E., Kittredge, R., & Polguere, A. (1990). Bilingual generation of weather forecasts in an operations environment. Paper presented at Proceedings of the 13th International Conference on Computational Linguistics (COLING), Helsinki, Finland, pp. 318-320.
Boyd, S. (1998). TREND: a system for generating intelligent descriptions of time series data. Paper presented at Proceedings of the IEEE international conference on intelligent processing systems (ICIPS-1998).
Character Writer Version 3.1, Typing Chimp Software LLC, 2012, screenshots from working program, pp. 1-19.
Cyganiak et al., "RDF 1.1 Concepts and Abstract Syntax", W3C Recommendation, 2014, vol. 25, No. 2.
Dehn, N. (1981). Story generation after TALE-SPIN. In Proceedings of the Seventh International Joint Conference on Artificial Intelligence. (Vancouver, Canada).
Dramatica Pro version 4, Write Brothers, 1993-2006, user manual.
Gatt, A., and Portet, F. (2009). Text content and task performance in the evaluation of a Natural Language Generation System. Proceedings of the Conference on Recent Advances in Natural Language Processing (RANLP-09).
Gatt, A., Portet, F., Reiter, E., Hunter, J., Mahamood, S., Moncur, W., and Sripada, S. (2009). From data to text in the Neonatal Intensive Care Unit: Using NLG technology for decision support and information management. AI Communications 22, pp. 153-186.
Glahn, H. (1970). Computer-produced worded forecasts. Bulletin of the American Meteorological Society, 51(12), 1126-1131.
Goldberg, E., Driedger, N., & Kittredge, R. (1994). Using Natural-Language Processing to Produce Weather Forecasts. IEEE Expert, 9 (2), 45.
Hargood, C., Millard, D. and Weal, M. (2009) Exploring the Importance of Themes in Narrative Systems.
Hargood, C., Millard, D. and Weal, M. (2009). Investigating a Thematic Approach to Narrative Generation, 2009.
Hunter, J., Freer, Y., Gatt, A., Logie, R., McIntosh, N., van der Meulen, M., Portet, F., Reiter, E., Sripada, S., and Sykes, C. (2008). Summarising Complex ICU Data in Natural Language. AMIA 2008 Annual Symposium Proceedings, pp. 323-327.
Hunter, J., Gatt, A., Portet, F., Reiter, E., and Sripada, S. (2008). Using natural language generation technology to improve information flows in intensive care units. Proceedings of the 5th Conference on Prestigious Applications of Intelligent Systems, PAIS-08.
Kittredge, R., and Lavoie, B. (1998). MeteoCogent: A Knowledge-Based Tool For Generating Weather Forecast Texts. In Proceedings of the American Meteorological Society AI Conference (AMS-98), Phoenix, Arizona.
Kittredge, R., Polguere, A., & Goldberg, E. (1986). Synthesizing weather reports from formatted data. Paper presented at Proceedings of the 11th International Conference on Computational Linguistics, Bonn, Germany, pp. 563-565.
Kukich, K. (1983). Design of a Knowledge-Based Report Generator. Proceedings of the 21st Conference of the Association for Computational Linguistics, Cambridge, MA, pp. 145-150.
Kukich, K. (1983). Knowledge-Based Report Generation: A Technique for Automatically Generating Natural Language Reports from Databases. Paper presented at Proceedings of the Sixth International ACM SIGIR Conference, Nashington, DC.
Mack et al., "A Framework for Metrics in Large Complex Systems", IEEE Aerospace Conference Proceedings, 2004, pp. 3217-3228, vol. 5, doi: 10.1109/AERO .2004.1368127.
Mahamood et al., "Generating Annotated Graphs Using the NLG Pipeline Architecture", Proceedings of the 8th International Natural Language Generation Conference (INLG), 2014.
McKeown, K., Kukich, K., & Shaw, J. (1994). Practical issues in automatic documentation generation. 4th Conference on Applied Natural Language Processing, Stuttgart, Germany, pp. 7-14.
Meehan, James R., TALE-SPIN. (1977). An Interactive Program that Writes Stories. In Proceedings of the Fifth International Joint Conference on Artificial Intelligence.
Memorandum Opinion and Order for O2 Media, LLC v. Narrative Science Inc., Case 1:15-cv-05129 (N.D. IL), Feb. 25, 2016, 25 pages (invalidating claims of U.S. Pat. Nos. 7,856,390, 8,494,944, and U.S. Pat. No. 8,676,691 owned by O2 Media, LLC.
Moncur, W., and Reiter, E. (2007). How Much to Tell? Disseminating Affective Information across a Social Network. Proceedings of Second International Workshop on Personalisation for e-Health.
Moncur, W., Masthoff, J., Reiter, E. (2008) What Do You Want to Know? Investigating the Information Requirements of Patient Supporters. 21st IEEE International Symposium on Computer-Based Medical Systems (CBMS 2008), pp. 443-448.
Movie Magic Screenwriter, Write Brothers, 2009, user manual.
Office Action for U.S. Appl. No. 16/183,270 dated Apr. 13, 2021.
Portet, F., Reiter, E., Gatt, A., Hunter, J., Sripada, S., Freer, Y., and Sykes, C. (2009). Automatic Generation of Textual Summaries from Neonatal Intensive Care Data. Artificial Intelligence.
Portet, F., Reiter, E., Hunter, J., and Sripada, S. (2007). Automatic Generation of Textual Summaries from Neonatal Intensive Care Data. In: Bellazzi, Riccardo, Ameen Abu-Hanna and Jim Hunter (Ed.), 11th Conference on Artificial ntelligence in Medicine (AIME 07), pp. 227-236.
Reiter et al., "Building Applied Natural Generation Systems", Cambridge University Press, 1995, pp. 1-32.
Reiter, E. (2007). An architecture for Data-To-Text systems. In: Busemann, Stephan (Ed.), Proceedings of the 11th European Workshop on Natural Language Generation, pp. 97-104.
Reiter, E., Gatt, A., Portet, F., and van der Meulen, M. (2008). The importance of narrative and other lessons from an evaluation of an NLG system that summarises clinical data. Proceedings of the 5th International Conference on Natural Language Generation.
Reiter, E., Sripada, S., Hunter, J., Yu, J., and Davy, I. (2005). Choosing words in computer-generated weather forecasts Artificial Intelligence, 167:137-169.
Riedl et al., "From Linear Story Generation to Branching Story Graphs", IEEE Computer Graphics and Applications, 2006, pp. 23-31.
Riedl et al., "Narrative Planning: Balancing Plot and Character", Journal of Artificial Intelligence Research, 2010, pp. 217-268, vol. 39.
Roberts et al., "Lessons on Using Computationally Generated Influence for Shaping Narrative Experiences", IEEE Transactions on Computational Intelligence and AI in Games, Jun. 2014, pp. 188-202, vol. 6, No. 2, doi: 10.1109/TCIAIG .2013.2287154.
Robin, J. (1996). Evaluating the portability of revision rules for incremental summary generation. Paper presented at Proceedings of the 34th. Annual Meeting of the Association for Computational Linguistics (ACL'96), Santa Cruz, CA.
Rui, Y., Gupta, A., and Acero, A. 2000. Automatically extracting highlights for TV Baseball programs. In Proceedings of the eighth ACM international conference on Multimedia. (Marina del Rey, California, United States). ACM Press, New York, NY 105-115.
Segel et al., "Narrative Visualization: Telling Stories with Data", Stanford University, Oct. 2010, 10 pgs.
Smari et al., "An Integrated Approach to Collaborative Decision Making Using Computer-Supported Conflict Management Methodology", IEEE International Conference on Information Reuse and Integration, 2005, pp. 182-191.
Smith, "The Multivariable Method in Singular Perturbation Analysis", SIAM Review, 1975, pp. 221-273, vol. 17, No. 2.
Sripada, S., Reiter, E., and Davy, I. (2003). SumTime-Mousam: Configurable Marine Weather Forecast Generator. Expert Update 6(3):4-10.
Storyview, Screenplay Systems, 2000, user manual.
Theune, M., Klabbers, E., Odijk, J., dePijper, J., and Krahmer, E. (2001) "From Data to Speech: A General Approach", Natural Language Engineering 7(1): 47-86.
Thomas, K., and Sripada, S. (2007). Atlas.txt: Linking Geo-referenced Data to Text for NLG. Paper presented at Proceedings of the 2007 European Natural Language Generation Workshop (ENLGO7).
Thomas, K., and Sripada, S. (2008). What's in a message? Interpreting Geo-referenced Data for the Visually-impaired. Proceedings of the Int. conference on NLG.
Thomas, K., Sumegi, L., Ferres, L., and Sripada, S. (2008). Enabling Access to Geo-referenced Information: Atlas.txt. Proceedings of the Cross-disciplinary Conference on Web Accessibility.
Van der Meulen, M., Logie, R., Freer, Y., Sykes, C., McIntosh, N., and Hunter, J. (2008). When a Graph is Poorer than 100 Words: A Comparison of Computerised Natural Language Generation, Human Generated Descriptions and Graphical Displays in Neonatal Intensive Care. Applied Cognitive Psychology.
Yu, J., Reiter, E., Hunter, J., and Mellish, C. (2007). Choosing the content of textual summaries of large time-series data sets. Natural Language Engineering, 13:25-49.
Yu, J., Reiter, E., Hunter, J., and Sripada, S. (2003). SUMTIME-TURBINE: A Knowledge-Based System to Communicate Time Series Data in the Gas Turbine Domain. In P Chung et al. (Eds) Developments in Applied Artificial Intelligence: Proceedings of IEA/AIE-2003, pp. 379-384. Springer (LNAI 2718).

Cited By (37)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20250068325A1 (en)*2010-04-152025-02-27Kcg Technologies LlcVirtual Smart Phone
US12293073B2 (en)*2010-04-152025-05-06Kcg Technologies LlcVirtual smart phone
US11790164B2 (en)2011-01-072023-10-17Narrative Science Inc.Configurable and portable system for generating narratives
US11921985B2 (en)2013-03-152024-03-05Narrative Science LlcMethod and system for configuring automatic generation of narratives from data
US12153618B2 (en)2015-11-022024-11-26Salesforce, Inc.Applied artificial intelligence technology for automatically generating narratives from visualization data
US12314674B2 (en)2017-02-172025-05-27Salesforce, Inc.Applied artificial intelligence technology for narrative generation based on a conditional outcome framework
US12086562B2 (en)2017-02-172024-09-10Salesforce, Inc.Applied artificial intelligence technology for performing natural language generation (NLG) using composable communication goals and ontologies to generate narrative stories
US11954445B2 (en)2017-02-172024-04-09Narrative Science LlcApplied artificial intelligence technology for narrative generation based on explanation communication goals
US11983503B2 (en)2017-02-172024-05-14Salesforce, Inc.Applied artificial intelligence technology for narrative generation based on a conditional outcome framework
US12423525B2 (en)*2017-02-172025-09-23Salesforce, Inc.Applied artificial intelligence technology for narrative generation based on explanation communication goals
US20240211697A1 (en)*2017-02-172024-06-27Salesforce, Inc.Applied Artificial Intelligence Technology for Narrative Generation Based on Explanation Communication Goals
US11816438B2 (en)2018-01-022023-11-14Narrative Science Inc.Context saliency-based deictic parser for natural language processing
US12001807B2 (en)2018-01-172024-06-04Salesforce, Inc.Applied artificial intelligence technology for narrative generation using an invocable analysis service
US11989519B2 (en)2018-06-282024-05-21Salesforce, Inc.Applied artificial intelligence technology for using natural language processing and concept expression templates to train a natural language generation system
US12346432B2 (en)*2018-12-312025-07-01Intel CorporationSecuring systems employing artificial intelligence
US20210319098A1 (en)*2018-12-312021-10-14Intel CorporationSecuring systems employing artificial intelligence
US12288039B1 (en)2019-01-282025-04-29Salesforce, Inc.Applied artificial intelligence technology for adaptively classifying sentences based on the concepts they express to improve natural language understanding
US12032921B2 (en)2020-07-132024-07-09Ai21 LabsControllable reading guides and natural language generation
US12124813B2 (en)2020-07-132024-10-22Ai21 LabsControllable reading guides and natural language generation
US12204871B2 (en)*2020-07-132025-01-21Ai21 LabsControllable reading guides and natural language generation
US12229525B2 (en)2020-07-132025-02-18Ai21 LabsControllable reading guides and natural language generation
US12346668B2 (en)2020-07-132025-07-01Ai21 LabsControllable reading guides and natural language generation
US12333471B2 (en)2020-08-182025-06-17Edera L3CChange management system and method
US20220058561A1 (en)*2020-08-182022-02-24Edera L3CChange Management System and Method
US12099954B2 (en)2020-08-182024-09-24Edera L3CSystem and method for generating and managing predefined journey scenarios for a business transition event
US12400167B2 (en)*2020-08-182025-08-26Edera L3CChange management system and method
US12380390B2 (en)2020-08-182025-08-05Edera L3CChange management system and method
US11922353B2 (en)2020-08-182024-03-05Edera L3CChange management system and method
US11900295B2 (en)2020-08-182024-02-13Edera L3CSystem and method for third-party submissions of observations concerning journey reactions
US12001786B2 (en)2021-05-242024-06-04Salesforce, Inc.Applied artificial intelligence technology for natural language generation using a graph data structure with follow-up capabilities
US12248461B2 (en)2021-05-242025-03-11Salesforce, Inc.Applied artificial intelligence technology for natural language generation using a graph data structure and configurable chooser code
US12056117B2 (en)2021-05-242024-08-06Salesforce, Inc.Applied artificial intelligence technology for natural language generation using a story graph and different structurers
US20220171772A1 (en)*2022-02-152022-06-02Garner Distributed Workflow Inc.Structured query language interface for tabular abstraction of structured and unstructured data
US20230367962A1 (en)*2022-05-112023-11-16Outline It, Inc.Interactive writing platform
US11995399B2 (en)*2022-05-112024-05-28Outline It, Inc.Interactive writing platform
US20240281605A1 (en)*2022-05-112024-08-22Outline It, Inc.Interactive writing platform
US12333647B2 (en)*2022-12-312025-06-17Theai, Inc.Dynamic control of knowledge scope of artificial intelligence characters

Also Published As

Publication numberPublication date
US12423525B2 (en)2025-09-23
US20240211697A1 (en)2024-06-27

Similar Documents

PublicationPublication DateTitle
US12423525B2 (en)Applied artificial intelligence technology for narrative generation based on explanation communication goals
US11068661B1 (en)Applied artificial intelligence technology for narrative generation based on smart attributes
US12314674B2 (en)Applied artificial intelligence technology for narrative generation based on a conditional outcome framework
US20250036888A1 (en)Applied Artificial Intelligence Technology for Performing Natural Language Generation (NLG) Using Composable Communication Goals and Ontologies to Generate Narrative Stories
US10699079B1 (en)Applied artificial intelligence technology for narrative generation based on analysis communication goals
CN116235144B (en)Domain specific language interpreter and interactive visual interface for rapid screening
US11954445B2 (en)Applied artificial intelligence technology for narrative generation based on explanation communication goals
TW201802709A (en)Guided analytics system and method
US20210034339A1 (en)System and method for employing constraint based authoring
EP4154108A1 (en)Domain-specific language interpreter and interactive visual interface for rapid screening
NiedermannDeep Business Optimization: concepts and architecture for an analytical business process optimization platform
PivenAnalysis of financial reports in companies using machine learning
Stirrup et al.Artificial Intelligence with Microsoft Power BI
ShadabSoftware is Scholarship
Edenfield et al.Microsoft Power BI Data Analyst Certification Guide
WO2025059598A1 (en)System and method for chat-to-visualization user interface for use with a data analytics workbook assistant
SajwanUser-Adaptable Rule-Based Natural Language Generation for Regression Testing.

Legal Events

DateCodeTitleDescription
FEPPFee payment procedure

Free format text:ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FEPPFee payment procedure

Free format text:ENTITY STATUS SET TO SMALL (ORIGINAL EVENT CODE: SMAL); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FEPPFee payment procedure

Free format text:ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCFInformation on status: patent grant

Free format text:PATENTED CASE


[8]ページ先頭

©2009-2025 Movatter.jp