US Pat. No. 9,262,550

PROCESSING SEMI-STRUCTURED DATA

Business Objects Software...

1. A method performed with a computing system for processing semi-structured data, the method comprising:
receiving semi-structured data comprising two or more keys, wherein for each key, the semi-structured data further comprising
a markup symbol that associates a value with the key;

determining that a location of a first key within the semi-structured data is at a beginning of the semi-structured data,
and in response, determining that the first key indicates a category of the semi-structured data;

identifying a structured data collection, the structured data collection being associated with the category and having a plurality
of attributes;

obtaining at least one of i) historical data associated with the plurality of attributes or ii) additional data associated
with a user of the computing system;

determining a location of a second key within the semi-structured data other than the beginning of the semi-structured data,
and in response, mapping the second key to an attribute of the plurality of attributes based on at least one of the obtained
historical data or the obtained additional data; and

storing the value associated with the second key in a cell of a data record of the structured data collection that is associated
with the mapped attribute to the key.

US Pat. No. 9,122,678

METHOD AND SYSTEM FOR RECOMMENDING ENTERPRISE COLLABORATION DATA

Business Objects Software...

1. A method of suggesting objects in a real-time collaboration tool, the method comprising:
forming a first vector representing an object utilized in the real-time collaboration tool;
comparing the vector to a plurality of vectors representing a plurality of objects stored in a database to locate one or more
vectors similar to the first vector, the comparing including, for each vector in the plurality of vectors stored in the database,
calculating a measure proportional to an inner product of the first vector and the vector from the plurality of vectors stored
in the database, divided by a product of norms of each of the first vector and the vector from the plurality of vectors stored
in the database; and

recommending one or more of the plurality of objects stored in the database to a user of the real-time collaboration tool
based on the comparing.

US Pat. No. 9,069,840

MATCHING DATA FROM DISPARATE SOURCES

Business Objects Software...

1. An apparatus comprising:
a processing node comprising a processor and a data reception module to receive an identification of at least two records
that match; and

an analysis module to communicatively couple to the data reception module, the analysis module to
determine a mutagen that, when applied to a first one of the at least two records based on element transformation, enables
identification of common characteristics of the at least two records, wherein the analysis module is configured to determine
the mutagen by:

transforming elements of the first one of the at least two records, based on the mutagen; and
determining a correspondence between the transformed elements and elements of a second one of the at least two records, and
apply the determined mutagen to one or more records in a first source of data to locate a set of potential matching records
in the first source of data and a second source of data.

US Pat. No. 9,146,801

APPLICATION INFORMATION SPECIFIABLE BY USERS AND THIRD PARTIES

Business Objects Software...

1. A method, comprising:
receiving a first informational code in response to the first informational code being generated during execution of a software
application for a user;

selecting, using a hardware processor, from a data storage device a first character string from a plurality of character strings
after the generation of the first informational code, the plurality of character strings corresponding to the first informational
code and the selection based on identifying information; and

transmitting the first character string for display to the user.

US Pat. No. 9,396,240

EXTREME VISUALIZATION ENABLING EXTENSION FOR LARGE DATA SETS

Business Objects Software...

1. A computer-implemented method comprising:
receiving a request for an input schema to feed to a data specification language (DaSL) and a metadata outline of typed objects
exposed by a database view identified in the request, the database view associated with the database selected using a graphical
user interface;

requesting extraction of the input schema and metadata outline from the database;
creating an instance of a DaSL compiler based upon the input schema;
generating, by a computer, a DaSL query corresponding to objects selected from the metadata outline, the DaSL query including
low-level primitive queries compiled into a computing language construct supported by the database, mapped to a specific DaSL
operator, dynamically compiled at query runtime, and executed to retrieve data from the database conforming to the request;

requesting compilation of the DaSL query;
receiving a calculation plan and topology cursors responsive to the compilation of the DaSL query; and
initiating visualization of a dataset responsive to the execution of the calculation plan using the topology cursors.

US Pat. No. 9,489,179

APPLICATION PROGRAMMING INTERFACE TRACING MECHANISM

Business Objects Software...

1. A method, comprising:
providing an application programming interface for an application, the application programming interface comprising a plurality
of interface objects;

creating a distinct proxy object for each of the plurality of interface objects, each of the proxy objects encapsulating the
interface object corresponding to the proxy object;

receiving, at each of the proxy objects, method calls from the application for the interface object corresponding to the proxy
object;

recording, at each of the proxy objects, using at least one processor of a machine, the received method calls;
passing, at each of the proxy objects, the received method calls to the interface object corresponding to the proxy object;
creating, for at least one of the interface objects, a rescue point, wherein a rescue point is a traced description of how
the associated interface object is to be reconstructed, and

generating an execution trace comprising the recorded method calls, wherein generating an execution trace includes using one
or more rescue points to reduce or eliminate gaps.

US Pat. No. 9,558,572

VISUALIZATION OF DATA CLUSTERS

Business Objects Software...

1. A method, comprising:
providing a first graph for presentation, the first graph representing a plurality of groups, each group representing an aggregated
set of data points grouped based on a first set of common attributes;

receiving user input selecting a particular group of the plurality of groups;
analyzing the aggregated set of data points represented by the selected group to determine whether the number of aggregated
set of data points exceeds a threshold number; and

in response to determining that the number of aggregated set of data points exceeds the threshold number, re-grouping the
aggregated set of data points, wherein re-grouping the aggregated set of data points includes:

receiving user input identifying a maximum number of groups and a maximum number of data points in each group;
identifying a second set of common attributes different from the first set of common attributes and associated with the re-grouped
set of data points;

aggregating the data points based on the second set of common attributes and further based on the maximum number of groups
and a maximum number of data points in each group; and

providing a second graph for presentation, the second graph representing a plurality of groups, each group representing an
aggregated subset of data points from the aggregated set of data points.

US Pat. No. 9,477,543

INSTALLATION HEALTH DASHBOARD

Business Objects Software...

1. A computer system, comprising:
at least one processor;
a logging system including instructions operable, during execution at least one processor, to collect a plurality of logs
associated with software builds for plural systems;

a dashboard viewer operable, during execution by the at least one processor, to:
present a dashboard that includes:
build information for a subset of the builds using at least the collected logs; and
hierarchical selection controls for selecting information to display for the subset of the builds;
receive, from inputs on the hierarchical selection controls, a selection of a stream and a build number from the subset of
the builds;

receive, from inputs on the hierarchical selection controls and from a list of builds matching the selected stream and build
number, a selection of a given build;

identify specific errors in at least one of the given build and statistics for the given build;
provide associated build information including information for past builds related to the given build; and
receive user inputs from a user, including user selections for one or more logs to be displayed; and
access log information associated with the user selections; and
a log exploration viewer operable to:
display and navigate particular logs associated with a given build;
receive a selection of a given error in a given log;
identify other builds in which the same error has previously occurred, wherein identifying the other builds includes:
querying, in a table of a database, line information for lines in the given log containing the given error, the line information
including execution identifiers for builds; and

identifying, using at least the line information, at least one other stream, build, product, or platform associated with the
error; and

provide, for display to the user, information associated with the other builds.

US Pat. No. 9,389,777

GESTURES FOR MANIPULATING TABLES, CHARTS, AND GRAPHS

Business Objects Software...

1. A computer-implemented method for presenting a chart in a touch-sensitive display screen of a data processing device, comprising:
graphically presenting in the chart, by a processor, data associated with a first variable of a plurality of variables in
a dataset;

graphically presenting a label located along an axis of the chart that display a first name associated with the first variable
of the dataset and comprises a visual element capable of being rotated from a first state to at least a second state,

wherein rotating the label cycles through the plurality of variables in the dataset;
detecting, by the processor, a first input comprising a single swipe gesture on or near the label on the display screen;
rotating the label in the display screen from the first state into the second state in response to the single swipe gesture;
graphically presenting a second name associated with a second variable of the dataset in the display screen in response to
detecting the single swipe gesture, wherein the second name corresponds to the second state and is different than the first
name; and

updating, by the processor, the chart to graphically present data associated with the second variable rather than the first
variable;

detecting, by the processor, a second input comprising a second single swipe gesture;
upon receiving the second input, presenting an animation that appears as though the chart is being folded in the direction
of the second swipe gesture to reveal a hidden menu underneath the chart in the display screen, the hidden menu configured
to modify the appearance of the chart;

detecting, by the processor, a selection from the hidden menu; and
modifying, by the processor, the appearance of the chart according to the selection.

US Pat. No. 9,218,568

DISAMBIGUATING DATA USING CONTEXTUAL AND HISTORICAL INFORMATION

Business Objects Software...

1. A method performed with a computing system for disambiguating data, the method comprising:
determining that data is potentially associated with two or more classifications of a plurality of classifications;
obtaining contextual information associated with the data;
obtaining historical information for a user associated with the data;
determining at least one accuracy modifier associated with an information type of the contextual information and the historical
information, the at least one accuracy modifier indicating an accuracy of at least one previous use of the information type
to resolve a data classification ambiguity;

employing the at least one accuracy modifier as at least one weight for the contextual information and the historical information;
determining at least one weighted score based on the at least one accuracy modifier; and
determining that the data is more likely associated with one classification of the two or more classifications than other
classifications of the two or more classifications, the determining based at least partly on a maximum of the at least one
weighted score.

US Pat. No. 9,811,938

METHODS, APPARATUS AND SYSTEM FOR ANALYTICS REPLAY UTILIZING RANDOM SAMPLING

Business Objects Software...

1. A method for generating an animated data visualization, the method comprising
submitting a data query on a data structure;
obtaining a time measurement for performing the data query, the time measurement being an amount of time between the submission
of the query and obtaining a query result;

adjusting, using one or more hardware processors, a sample size of the data query based on the time measurement and a frame
refresh rate, wherein the sample size is a size of a subset of data obtained in a sample, wherein the adjusting increases
the sample size if the obtained time measurement multiplied by a multiplication factor is smaller than an inverse of the frame
refresh rate, and wherein the multiplication factor is not equal to zero or one; and

generating the animated data visualization based on one or more results of the data query.

US Pat. No. 9,378,306

BINNING VISUAL DEFINITION FOR VISUAL INTELLIGENCE

Business Objects Software...

1. A computer-implemented method for modifying a data visualization, the method being executed using one or more processors
and comprising:
receiving, by the one or more processors, data;
displaying the data visualization based on the data, the data visualization being displayed within a graphical user interface
(GUI) and being provided as a histogram comprising a first plurality of bins, the first plurality of bins being defined based
on default binning parameters;

receiving, by the one or more processors, user input, the user input being input to the data visualization using the GUI by
directly manipulating at least a single bin of the first plurality of bins and indicating a first operation comprising a first
function to be performed on the single bin of the first plurality of bins and a second function to be performed on the first
plurality of bins, the second function being different from the first function;

providing user-defined binning parameters based on the user input; and
displaying a modified data visualization based on the data and the first operation, the modified data visualization being
displayed within the GUI and being provided as the histogram comprising a second plurality of bins, the second plurality of
bins being defined based on the user-defined binning parameters and being different from the first plurality of bins.

US Pat. No. 9,218,373

IN-MEMORY DATA PROFILING

Business Objects Software...

1. A method of performing data profiling in an in-memory database management system, the method comprising:
receiving a command from a client computer, the command requesting a data attribute calculation on data in the in-memory database
management system, the in-memory database management system storing the data in main memory in lieu of storing the data in
a disk-based storage;

performing the data attribute calculation on the data in the in-memory database management system by utilizing a precreated
data attribute calculation procedure in the in-memory database management system, the precreated data attribute calculation
procedure written in a database computer language in which the command requesting the data attribute calculation is sent to
the in-memory database management system along with script of the database computer language and stored in main memory in
lieu of being stored in a disk-based storage, the data attribute calculation including a statistical function on one or more
columns of the data, the precreated data attribute calculation procedure being natively compiled and including support to
implement high performance operators called from the script of the database computer language; and

returning a result of the performing of the data attribute calculation to the client computer.

US Pat. No. 9,152,627

AUTOMATIC RULE GENERATION

Business Objects Software...

1. A method of automatically generating data validation rules from data stored in a column of a table, the method comprising:
determining, using a processor of a machine, a quantity of an outlier for the data by analyzing a profiling statistic for
the data, the profiling statistic having a type and wherein the outlier is an element of the data that is numerically distant
from other elements of the data;

determining if the quantity of the outlier exceeds a predefined limit;
automatically generating a data validation rule based on non-outliers detected in the data through the analysis of the profiling
statistic, the generated data validation rule also being based on the type of the profiling statistic and the quantity of
the outlier; and

applying the data validation rule on data subsequently entered for the column, causing at least a portion of the data subsequently
entered for the column to be rejected.

US Pat. No. 9,367,383

TRACING AND DISCOVERING THE ORIGINS AND GENEALOGY OF INSTALL ERRORS

Business Objects Software...

1. A method comprising:
receiving an indication of a user selection of an error associated with a product installation;
identifying, in a database, metadata associated with the error, including metadata for an action associated with the error;
identifying, in the database, metadata for product installations having a matching stream, a matching build number, and a
matching error as the product installation;

identifying, in the database, other builds in a same stream having the same error;
providing, for presentation to the user, information for displaying a graph, the graph including a horizontal line graph including
first nodes representing builds in the same stream having the same error;

identifying, in the database, other occurrences of the same action and the same error in builds in at least one other streams;
providing, for presentation to the user, information for updating the graph with a parallel line for each of the identified
at least one other stream, each parallel line including second nodes representing builds in the particular one of the at least
one other stream;

identifying, in the database, using dates associated with an oldest one of the first nodes and the second nodes, a date associated
with the oldest node; and

providing, for presentation to the user, information for presenting a list of potential changes, occurring before the date
associated with the oldest node and that are candidates for causing the error.

US Pat. No. 9,280,443

DASHBOARD PERFORMANCE ANALYZER

Business Objects Software...

1. A method of evaluating a dashboard design comprising:
providing a dashboard with one or more dashboard items;
evaluating performance of the dashboard to determine a load time of the dashboard; and
providing possible suggestions for improving performance of the dashboard if performance issues are determined from evaluating
performance of the dashboard.

US Pat. No. 9,268,801

AUTOMATIC FILE STRUCTURE AND FIELD DATA TYPE DETECTION

Business Objects Software...

1. A computer-implemented method for determining data structure and field types of a data source that is to be processed by
an application, the method being executed using one or more processors and comprising:
receiving the data source;
providing base data associated with the data source;
determining, by the one or more processors, a number of fields of the data source and, for each field, a field type based
on the data source and the base data, wherein determining the number of fields of the data source comprises:

selecting a field separator from a plurality of field separators;
for each sample row in a set of sample rows, determining an estimated number of fields based on the field separator; and
iterating over all separators in the plurality of field separators and determining that, for each field separator, the estimated
number of fields for each sample row is unequal across two or more sample rows in the set of sample rows, and in response,
setting the number of fields equal to one;

generating, by the one or more processors, data structure data, the data structure data comprising the number of fields and
field types; and

providing, by the one or more processors, the data structure data to the application.

US Pat. No. 9,213,536

METHOD AND ARCHITECTURE FOR AUTOMATIC INSTALLATION AND SELF-UPDATING OF CLIENT-SIDE COMPUTER SOFTWARE

Business Objects Software...

1. A computer-implemented method comprising:
a Unix daemon on a system of a client computer initiating a processor of the client computer to perform method calls in multiple
computer languages to shared runtime libraries and using a native interface, in order to determine a version information of
a software product currently installed on a first virtual machine of the client computer, without reference to a manifest
and without modifying metadata of the version information;

causing the processor to communicate the version information to a server computer;
causing the server computer to check the version information against a list of client-side components;
communicating an updated version of the software product to the client computer based upon comparison of the version information
against the list;

storing the updated version of the software product in a non-transitory computer readable storage medium of the client computer;
causing the updated version of the software product to automatically be installed on the first virtual machine of the client
computer; and

causing the updated version of the software product to automatically be installed on a second virtual machine accessing the
shared runtime library without a request being sent to the server, wherein the processor is configured to cache data shared
by the first virtual machine and the second virtual machine.

US Pat. No. 9,299,041

OBTAINING DATA FROM UNSTRUCTURED DATA FOR A STRUCTURED DATA COLLECTION

Business Objects Software...

1. A method performed with a computing system for obtaining data from unstructured data for a structured data collection,
the method comprising:
receiving unstructured data that includes text;
identifying an attribute associated with a structured data collection;
obtaining historical data associated with the attribute and two or more different types of additional data associated with
a user of the computing system, wherein each additional datum is associated with an accuracy modifier based on the type of
the additional datum;

identifying one or more terms from the unstructured data as being associated with the attribute based on at least one of the
historical data and the additional data, wherein identifying the one or more terms includes resolving ambiguities in the identified
terms based on the accuracy modifier associated with each additional datum;

storing the identified one or more terms in a data record of the structured data collection; and
preparing for display the data record of the structure data collection.

US Pat. No. 9,128,595

MANAGING DATA CONTENT ON A COMPUTING DEVICE

Business Objects Software...

1. A method performed with a computing system for managing content on a computing device, the method comprising:
identifying a data object comprising business data values defined in a structured format, the structured format comprising
the business data values defined by two or more first dimensions and two or more second dimensions;

determining a particular first dimension and a muted first dimension of the two or more first dimensions and a particular
second dimension and a muted second dimension of the two or more second dimensions, the determining comprising:

determining an outer level first dimension as one of the two or more first dimensions, the outer level first dimension comprising
a plurality of members;

determining an inner level first dimension as one of the two or more first dimensions, the inner level first dimension comprising
a plurality of members that comprise a subset of the outer level first dimension;

setting the inner level first dimension as the particular first dimension, and the outer level first dimension as the muted
first dimension;

determining an outer level second dimension as one of the two or more second dimensions, the outer level second dimension
comprising a plurality of members;

determining an inner level second dimension as one of the two or more second dimensions, the inner level second dimension
comprising a plurality of members that comprise a subset of the outer level second dimension;

setting the inner level second dimension as the particular second dimension, and the outer level second dimension as the muted
second dimension;

generating a display grid for display on a computing device, the display grid comprising a portion of the business data values
corresponding to the particular first dimensions the particular second dimension, the muted first dimension, and the muted
second dimension, wherein the display of the generated display grid is independent of the muted first dimension and the muted
second dimension;

preparing the display grid for display on the computing device;
receiving a first command from the user of the computing device through the context interface;
in response to receiving the first command:
determining the outer level first dimension as the other one of the two or more first dimensions to provide an updated outer
level first dimension,

setting the updated outer level first dimension as the particular first dimension and the inner level first dimension as the
muted first dimension;

regenerating the display grid for display on the computing device, the display grid comprising a portion of the business data
values corresponding to the swi-tehed particular first dimension the particular second dimension, the muted first dimension,
and the muted second dimension, wherein the display of the regenerated display grid is independent of the muted first dimension
and the muted second dimension; and

preparing the regenerated display grid for display on the computing device.

US Pat. No. 9,715,556

TECHNIQUES FOR CREATING DYNAMIC INTERACTIVE INFOGRAPHICS

BUSINESS OBJECTS SOFTWARE...

1. A computer-implemented method, comprising:
providing, by a processor, a graphical user interface of an infographic template that includes a first area presenting a text
object and a second area presenting a graphical representation of a first property of data stored in a table contained in
an infographic document that is used to generate the graphical representation;

receiving, via the graphical user interface, a first input representative of a text string in the text object, and storing
the first input in a text portion of the infographic document;

receiving, via the graphical user interface, a second input representative of associating the text string in the text object
and the graphical representation;

determining, by the processor, a relationship between the text string in the text object and the graphical representation
by matching the text string to an entry in the table, and storing the relationship in a linking metadata portion of the infographic
document; and

linking, by the processor, the text string in the text object as a control variable to the graphical representation according
to the relationship by storing data in the linking metadata portion of the infographic document that describes the link between
the text string to the graphical representation, wherein the graphical representation is dynamically updated when a third
input is received that modifies the control variable.

US Pat. No. 9,582,495

DOMAIN KNOWLEDGE DRIVEN SEMANTIC EXTRACTION SYSTEM

BUSINESS OBJECTS SOFTWARE...

9. A computer system comprising:
one or more processors;
a software program, executable on said computer system, the software program configured to:
provide an engine in communication with a database configured to store a data type;
cause the engine to receive a heterogeneous input data stream comprising an element;
cause the engine to reference a mapping schema of a knowledge model created by a domain expert, to produce a mapping of the
element with a class of the mapping schema;

cause the engine to output a resource model comprising the mapping and a relationship between the element and the data type;
cause the engine to apply a first pattern recognition to partition the data stream into a segment including a data interval;
cause the engine to apply a second pattern recognition to determine a data value change in the segment;
cause the engine to apply an attribute schema of the resource model to the segment to identify an event;
cause the engine to apply a segment schema of the resource model to the data stream to generate a pattern-driven annotation
stream comprising a triple in a form of (b,t1,t2), where b comprises a behavior and t1 and t2 indicate the data interval; and

maintain the event and the behavior in an entity pool.

US Pat. No. 9,582,554

BUILDING INTELLIGENT DATASETS THAT LEVERAGE LARGE-SCALE OPEN DATABASES

BUSINESS OBJECTS SOFTWARE...

1. A computer-implemented method, comprising:
receiving, by a processor, a table containing a plurality of entries, each entry storing plain text;
receiving, by the processor, an entity database containing an entity collection, the entity collection including a plurality
of entity tags that belong to a category, wherein an entity tag from the plurality of entity tags is linked with metadata
information from an open access database;

determining, by the processor, that a set of entries from the plurality of entries belong to the category;
matching, by the processor, an entry in the set of entries to the entity tag;
linking, by the processor, the entity tag to the entry;
searching, by the processor, an available resource other than the open access database to link additional data related to
the entry according to the entity tag;

selecting the additional data from a canvas overlying the available resource; and
enriching, by the processor, the table to include the additional data in a new column.

US Pat. No. 9,536,096

PRESENTING VISUALIZATIONS OF BUSINESS INTELLIGENCE DATA

Business Objects Software...

1. A method for generating an interactive document from business intelligence data, the method comprising:
receiving a data bundle, the data bundle comprising extracted data and metadata from a business intelligence file transformed
into a format associated with a business intelligence specification;

receiving an application bundle comprising rendering instructions generated based, in part on a format of the metadata from
the data bundle;

encoding the data bundle and the application bundle to convert the data bundle and the application bundle from a binary format
to a textual format;

embedding the encoded data bundle and application bundle into a document viewer, the document viewer supporting the business
intelligence specification;

generating a visual interactive document derived from the encoded data bundle and application bundle embedded into the document
viewer; and

displaying, by the document viewer, the visual interactive document as a simile-page web-based application.

US Pat. No. 9,262,850

DESCRIPTIVE FRAMEWORK FOR DATA VISUALIZATION

Business Objects Software...

1. A computer-implemented descriptive method of data visualization, comprising:
providing pre-defined module manifests in a manifest system stored in a non-transitory computer-readable medium, wherein at
least one of the pre-defined module manifests is a first configuration file that describes features of a module, wherein the
module represents a particular component of a visualization;

generating a new module manifest based on at least one of the pre-defined module manifests, wherein the new module manifest
is a second configuration file that describes the features of the module;

generating a chart manifest referencing the new module manifest, wherein the chart manifest is a third configuration file
that describes the visualization by specifying a relationship between the module of the new module manifest and another component
module; and

rendering the visualization based on the chart manifest.

US Pat. No. 9,146,957

METHOD AND SYSTEM FOR GENERATING OPTIMAL MEMBERSHIP-CHECK QUERIES

Business Objects Software...

1. A method of transforming a query at a web server, the method comprising:
traversing, at the web server, an abstract syntax tree representing the query, for each node in the abstract syntax tree:
setting a conjunct position field in a data structure corresponding to the node as true when the node's parent is a WHERE
node;

setting a conjunct position field in a data structure corresponding to the node as false when the node's parent is an OR node;
setting a conjunct position field in a data structure corresponding to the node as identical to a conjunct position field
in a data structure corresponding to the node's parent node when the node's parent is an AND node;

transforming any IN node in the abstract syntax tree to an INNER JOIN node when the conjunct position field in the data structure
corresponding to the IN node is set as true;

converting the abstract syntax tree into a Structured Query Language (SQL) query; and
transmitting the SQL query to a database for processing.

US Pat. No. 9,251,212

PROFILING IN A MASSIVE PARALLEL PROCESSING ENVIRONMENT

Business Objects Software...

1. A computer-implemented method of profiling a data set in a parallel processing environment, comprising:
partitioning an initial data set stored in a row based format vertically according to multiple attribute subsets, wherein
partitioning comprises extracting data for the multiple attribute subsets from the initial data set;

storing the extracted data for the multiple attribute subsets in a plurality of staging files, the plurality of staging files
including extracted data that is static;

profiling the multiple attribute subsets based on a specific attribute value, wherein different staging files are provided
to different machines in a plurality of machines for profiling;

determining a set of row identifiers that satisfy the specific attribute value identified in the profiling of the different
staging files processed on the plurality of machines;

extracting, for each row identifier in the set of row identifiers, a row identifier, a column identifier, and a value of an
attribute for a set of columns associated with each row identifier;

merging the row identifier, the column identifier, and the value of the attribute for the set of columns associated with each
row identifier to form a profiled subset of the initial data set; and

transmitting, displaying or storing the profiled subset of the initial data set, a further processed version, or combinations
thereof.

US Pat. No. 9,171,057

CLASSIFYING DATA USING MACHINE LEARNING

Business Objects Software...

1. A method performed with a distributed computing system for classifying one or more commodities, the method comprising:
matching one or more attributes of a commodity with one or more terms of a plurality of terms in a word matrix, the word matrix
comprising a plurality of nodes and a plurality of links, each node including a term of the plurality of terms, and each link
connecting two or more nodes and defining a similarity between the two or more nodes;

generating, based on the matching, a particular vector for the commodity;
identifying a vector space including two or more vectors, the one or more vectors including the particular vector;
identifying, by a support vector machine, one or more decision surfaces that separate the vector space into one or more classification
regions, wherein each classification region includes at least one of the two or more vectors and corresponds to a classification;

identifying, based on the vector, a particular classification region of the one or more classification regions;
receiving a query from an enterprise computing system, the query comprising data associated with the commodity; and
preparing data associated with the particular classification for display at the enterprise computing system.

US Pat. No. 9,779,134

SYSTEM AND METHOD OF DATA WRANGLING

Business Objects Software...

1. A system comprising:
a configuration module, executable on at least one processor, configured to:
cause a graphical user interface (GUI) to be displayed on a computing device of a user, the GUI being configured to enable
the user to submit an identification of a dataset and at least one configuration parameter;

receive, via the GUI on the computing device, the identification of the dataset and the at least one configuration parameter;
and

configure a sampling algorithm based on the at least one configuration parameter;
a sampling module configured to generate a sample of data from the dataset using the configured sampling algorithm;
a sample quality module configured to determine a quality value of the sample of data based on the at least one configuration
parameter; and

a data visualization software tool configured to generate visual representations of data, the sampling module being further
configured to transmit the generated sample of data to the data visualization software tool, and the data visualization software
tool being further configured to:

determine an original visualization of the sample of data;
generate a modified visualization of the sample of data based on a modification of the original visualization, the modification
being based on the quality value and comprising a visual effect being applied to the original visualization; and

cause the modified visualization of the sample to be displayed on the computing device of the user.

US Pat. No. 9,639,583

CACHING PREDEFINED DATA FOR MOBILE DASHBOARD

BUSINESS OBJECTS SOFTWARE...

1. A computer-implemented method comprising:
providing a device comprising a cache engine and a cache memory;
causing the cache engine to communicate a query including a cache parameter over a network connection to a remote database;
causing the cache engine to receive data of a query result over the network connection;
causing the cache engine to store in the cache memory according to the cache parameter, only a subset of data of the query
result; and

causing the device to display to a user, a dashboard including the subset of data of the query result stored in the cache
memory.

US Pat. No. 9,552,393

ADAPTIVE RECORD LINKING IN A DISTRIBUTED COMPUTING SYSTEM

Business Objects Software...

1. A method performed with a distributed computing system for retrieving information, the method comprising:
receiving, at a local computing system, a plurality of data records from one or more remote computing systems, each data record
comprising one or more data fields associated with a business enterprise, the one or more data fields comprising a name of
the business enterprise;

updating a plurality of database records associated with the received plurality of data records stored in a database communicably
coupled to the local computing system, each database record including attributes comprising the name of the business enterprise
and an alias associated with the name of the business enterprise, where updating comprises:

searching the database for a database record of the plurality of database records that comprises an attribute that matches
the name of the business enterprise or the alias associated with the name of the business enterprise; and

based on the match of the name of the business enterprise or the alias associated with the name of the business enterprise,
creating a new database record that includes attributes that comprise the one of the matched name of the business enterprise
or the alias associated with the name of the business enterprise, and the other of the name of the business enterprise or
the alias associated with the name of the business enterprise;

receiving, at the local computing system, a query from a first user for a particular database record of the plurality of database
records, the query comprising at least one of the name of the business enterprise or the alias associated with the name of
the business enterprise;

determining, using a matching process, one or more of the plurality of database records based on at least one of the name
of the business enterprise or the alias associated with the name of the business enterprise;

displaying, the one or more of the plurality of database records;
after displaying the one or more of the plurality of database records in response to the query, displaying, to a second user
that is different than the first user, a statistical output of the matching process for a matching process review, the statistical
output for the matching process review comprising a first number of records for which successful matches were found by the
matching process, a second number of records for which no matches were found by the matching process, a third number of records
for which possible matches were found by the matching process, and a user interface object for reviewing the possible matches
and updating the matching process based on the possible matches;

in response to a selection by the second user of the user interface object, displaying a possible match view for a data record
to be reviewed, wherein the possible match view includes a plurality of attributes of the data record to be reviewed, a plurality
of database records associated with the data record to be reviewed, and a matching score for each of the plurality of database
records calculated based on the matching process, the matching score indicating an amount of similarity between the data record
to be reviewed and the respective database record; and

receiving a selection by the second user for each of the plurality of database records, wherein the selection indicates whether
the respective database record is accepted or rejected for the matching process.

US Pat. No. 9,817,851

DYANMIC DATA-DRIVEN GENERATION AND MODIFICATION OF INPUT SCHEMAS FOR DATA ANALYSIS

Business Objects Software...

1. A computer-implemented method comprising:
receiving a first set of event data in a first event structure from a remote computing data source with an event collector,
wherein the remote computing data source is registered with the event collector to transmit event data to the event collector;

transmitting the received first set of event data for analysis;
saving the transmitted first set of event data;
determining whether to create or update a business intelligence view based on the saved first set of event data;
creating an input schema based on the saved first set of event data; and
providing, by a computer and for storage, the created input schema derived from the saved first set of event data and proactively
describing how data is represented in the database and what type of queries can be performed on the database and required
particular language formalisms to a query generation engine for later use in retrieving data from the database upon receipt
of a high-level query request from the remote computing data source or another remote computing data source, wherein the query
generation engine dynamically generates a query generation engine expression corresponding to the input schema, and wherein
the query generation engine provides computing services to generate low-level native database queries from the high-level
query request for compatibility with the database;

receiving a second set of event data in a second event structure from the remote computing data source, the second event structure
different from the first event structure;

transmitting the received second set of event data for analysis;
saving the transmitted second set of event data;
dynamically modifying the input schema in response to a determination that the second event structure of the saved second
set of event data differs from the structure of the created input schema; and

providing, by the computer and for storage, an updated input schema as modified based on the saved second set of event data.

US Pat. No. 9,459,939

IN-MEMORY APPROACH TO EXTEND SEMANTIC EVENT PROCESSING WITH DOMAIN INSIGHTS

BUSINESS OBJECTS SOFTWARE...

1. A method implemented by a computing system in response to execution of program instructions by a processor of the computing
system, the method comprising:
receiving an event stream, the event stream comprising a plurality of events, the events being semantically modeled using
Resource Description Framework (RDF) specification;

receiving domain insights specifying a relationship between a first event and a second event of the plurality of events, the
domain insights being semantically modeled using RDF specification and comprising a specified time limit and a comparison
of a start time or an end time of the first event and a start time or an end time of the second event using a combination
of the specified time limit with a logical operator;

retrieving stored representations of events referenced in the received domain insights;
processing the event stream, the received domain insights, and the retrieved stored representations of events to produce a
temporal processing result;

storing the temporal processing result; and
dispatching the temporal processing result, wherein the dispatched temporal processing result is used for at least one of
guidance in a business process and producing a business report.

US Pat. No. 10,140,383

COMPUTER IMPLEMENTED SYSTEMS AND METHODS FOR PROCESSING SEMI-STRUCTURED DOCUMENTS

BUSINESS OBJECTS SOFTWARE...

1. A computer-implemented method comprising:accessing, from a computer memory, information representing structure of a plurality of semi-structured documents, wherein the plurality of semi-structured documents comprise a plurality of fields having associated values;
generating, by one or more computers, a visual representation of the information representing structure of the plurality of semi-structured documents, the visual representation comprising graphical elements corresponding to the plurality of fields, wherein,
the information representing the structure of the plurality of semi-structured documents is stored in the computer memory as a tree data structure,
nodes of the tree represent fields of the plurality of fields and leaf nodes represent atomic values,
the visual representation is a graphical tree, and
the graphical elements each comprise a graphical indication of a frequency that corresponding fields appear in the plurality of semi-structured documents;
outputting, by the one or more computers, the visual representation to a display;
receiving, in the one or more computers, information representing a user selection to include one or more particular fields of the plurality of fields in an output data set, wherein the one or more particular fields comprise collections having a plurality of items;
storing the selected particular fields in the output data set as a two-dimensional data structure;
determining a similarity between particular items in a particular collection;
collapsing the particular items in the particular collection into a single graphical element in the visual representation when the similarity between items is greater than a threshold; and
collapsing the tree data structure in memory when the similarity between items is greater than the threshold.

US Pat. No. 9,785,698

BEHAVIORALLY CONSISTENT CLUSTER-WIDE DATA WRANGLING BASED ON LOCALLY PROCESSED SAMPLED DATA

Business Objects Software...

1. A method comprising:
selecting, at a local client device, a first plurality of raw data from a second plurality of raw data, the second plurality
of raw data being stored remote from the local client device and accessible by a remote device;

receiving the first plurality of raw data at the local client device;
selecting, from a library of data wrangling operations at the local client device, a plurality of data wrangling operations
to perform on the first plurality of raw data;

instantiating, at the local client device, a first data wrangling module operating in a first mode selected from a first plurality
of modes, the first mode being selected based on computing resources available to the local client device;

applying, using at least one hardware processor of the local client device, the plurality of data wrangling operations to
the first plurality of raw data using the first mode of the first data wrangling module to obtain a first plurality of structured
data;

causing presentation, via a user interface of the local client device, of the first plurality of structured data;
receiving, via the user interface of the local client device, after the causing of the presentation of the first plurality
of structured data, an input indicating approval of the first plurality of structured data; and

sending, in response to receiving the input, the selection of the plurality of data wrangling operations to the remote device,
the remote device being configured to:

instantiate a second data wrangling module operating in a second mode selected from a plurality of modes; and
apply the selected plurality of data wrangling operations to the second plurality of raw data using the second mode of the
second data wrangling module to obtain a second plurality of structured data, the second plurality of structured data having
an expected organization based on the first plurality of structured data.

US Pat. No. 9,477,535

CONNECTION POOL FOR ACCESSING A BACKEND PROCESSING SYSTEM

Business Objects Software...

1. A method of providing a connection with a backend processing system, the method comprising:
receiving, from an application, a request for a connection between the backend processing system and a user of the application;
selecting one of a plurality of connections with the backend processing system, each of the plurality of connections bound
with a corresponding generic user session in the backend processing system;

unbinding, at the backend processing system, in response to receiving the request, the one of the plurality of connections
from a generic user session bound with the one of the plurality of connections;

binding, at the backend processing system, a user session corresponding to the user of the application with the one of the
plurality of connections;

returning, after the unbinding of the generic user session from the one of the plurality of connections, the generic user
session to a generic user session cache, in the backend processing system, that stores a number of generic user sessions equal
to the number of bound user sessions; and

providing, to the user of the application, in response to the binding of the user session corresponding to the user of the
application, access to the one of the plurality of connections.

US Pat. No. 9,886,520

EXPOSING RELATIONSHIPS BETWEEN UNIVERSE OBJECTS

Business Objects Software...

1. A computer-implemented method for exposing relationships between universe objects, the method being executed using one
or more processors and comprising:
identifying, by the one or more processors, a universe, the universe comprising a data foundation, an abstracted layer, and
a semantic layer, the data foundation defining an underlying database model comprising a definition of tables, joins and contexts
used by the universe, the abstracted layer comprising a list of objects and folders exposed by the universe and being configured
to obscure a technical complexity defining relationships between tables referenced by the objects in the data foundation underlying
the universe, each of the objects comprising an array of data categorized into one or more dimensions and being characterized
by at least one of a dimension, an attribute and a measure, and the semantic layer mapping complex data of the data foundation
to non-technical terms using an information engine that enables access to data and analysis of data independent of the underlying
data source;

automatically processing, by the one or more processors, the objects of the abstracted layer to provide one or more link groups,
each link group comprising a plurality of objects that are related to one another;

matching, by the one or more processors, the dimension-attribute relationships between the objects of each of the one or more
link groups to determine a compatibility of the objects and to prevent a selection of one or more of the objects that are
identified as being incompatible by applying indicators of the compatibility to corresponding objects; and

outputting the one or more link groups to initiate querying of the universe.

US Pat. No. 9,779,368

DYNAMIC INHERITANCE OF METADATA CONCEPTS FROM PROJECT RESOURCES INTO A SEMANTIC MODEL

Business Objects Software...

1. A computer-implemented method executed using one or more processors and comprising:
receiving, by the one or more processors, a plurality of core data foundations representing database resources and comprising
database tables and operations;

defining, by the one or more processors, a derived data foundation comprising a first plurality of links to the plurality
of core data foundations and representing a hierarchical inheritance relationship of the plurality of core data foundations;

receiving, by the one or more processors, a plurality of core business layers representing business concepts and comprising
data objects associated to the database tables and the operations;

defining, by the one or more processors, a derived business layer comprising a second plurality of links to the plurality
of core business layers;

generating, by the one or more processors, a universe by compiling the derived business layer on top of the derived data foundation,
wherein the universe exposes only data objects that are permitted to be published and that are associated with the derived
business layer or inherited by the derived business layer from the derived data foundation; and

processing, by the one or more processors, the universe using a computer-executable model checking tool for evaluating an
integrity of the universe by determining whether one or more links of the first plurality of links or the second plurality
of links is broken, such that determining that the one or more links are broken triggers a notification configured to enable
a repair of the one or more links.

US Pat. No. 10,068,029

VISUALIZING RELATIONSHIPS IN SURVEY DATA

Business Objects Software...

1. A non-transitory computer-readable medium storing instructions executable by one or more computer systems to perform operations comprising:displaying a user interface including a first region and a second region comprising a percentage area and a filter area;
displaying, in the first region and by the one or more computer systems, a plurality of question objects associated with a completed survey, each question object representing a survey question and an answer option associated with a particular answer option from a set of available answer options for the survey question, the survey question and the answer option included in a survey data set associated with the completed survey that includes a plurality of survey questions, a plurality of answers for each survey question, and a number of selections of each answer for each survey question;
detecting, by the one or more computer systems, user input received via the user interface of a selection of a first question object from the first region for display in the percentage area of the second region;
in response to detecting the user input of the selection of the first question object, displaying, by the one or more computer systems, the first question object in a first location of the percentage area of the second region, the first location of the percentage area representing a first percentage representing a percentage of selections of a first particular answer option to a first survey question from the set of available answer options for the first survey question represented by the first question object;
detecting, by the one or more computer systems, user input received via the user interface associated with a move of a second question object from the first region to a location within the filter area of the second region, the second question object associated with a first particular answer option to a second survey question from a set of available answer options for the second survey question;
in response to detecting the user input associated with the move of the second question object to the location within the filter area of the second region:
displaying the second question object in the filter area of the second region;
determining, automatically and without user input, a second percentage representing a correlation between the first particular answer option associated with the first question object and the first particular answer option associated with the second question object, the second percentage comprising an updated percentage from the first percentage;
identifying a second location in the percentage area of the second region that represents the second percentage; and
moving, automatically and without user input, the first question object from the first location in the percentage area of the second region to the second location in the percentage area of the second region.

US Pat. No. 10,037,025

DETECTING ANOMALIES IN AN INTERNET OF THINGS NETWORK

Business Objects Software...

1. A computer-implemented method comprising:receiving, by operation of a computer system, a dataset of a plurality of data records, each of the plurality of data records comprising a plurality of features and a target variable associated with the plurality of features, each feature of the plurality of features representing a reading of a separate sensor coupled to a machine and measuring a condition of the machine, and the target variable representing a status of the machine;
identifying a set of normal data records from the dataset based on the target variable;identifying inter-feature correlations by performing correlation analysis on the set of normal data records; andperforming predictive maintenance on the machine based on a detection of an anomaly based on the inter-feature correlations for predictive maintenance, wherein the detection of the anomaly comprises:
identifying a cluster of correlated features based on the inter-feature correlations;
building a model that estimates a first feature in the cluster of correlated features based on one or more other features in the cluster of correlated features;
receiving a data record that includes an observed value of the first feature and observed values of the one or more other features in the cluster of correlated features;
determining an estimated value of the first feature according to the model based on the values of the one or more other features in the cluster of correlated features;
comparing the estimated value of the first feature with the observed value of the first feature; and
determining whether the data record is a normal data record or an abnormal data record based on the comparison.

US Pat. No. 9,946,737

SYSTEM AND METHOD FOR SIMPLIFYING DATA ACCESS BETWEEN TIERS IN A MULTI-TIER SYSTEM

Business Objects Software...

1. A method comprising:generating, by use of a data processor, a single, shared, generic data transfer object (GDTO) at a GDAO layer, wherein the GDTO is a data structure having a format that is capable of having stored therein any of multiple data types, the GDTO including content of a first content type and one or more access methods defining procedures to access the first content type:
receiving a request for service from a browser at the generic data access object (GDAO) layer;
calling through to a database tier to retrieve a database record responsive to the request for service, the database tier providing database metadata;
adding content of a second content type from the database record to the GDTO;
creating one or more access methods defining procedures to access the second content type based on the database metadata;
storing in the GDTO the one or more access methods defining procedures to access the second content type based on the database metadata, thus resulting in the content of a first content type, the one or more access methods defining procedures to access the first content type, the content of a second content type, and the one or more access methods defining procedures to access the second content type all being stored in the same data structure; and
returning the GDTO, including the content of a first content type, the one or more access methods defining procedures to access the first content type, the content of a second content type, and the one or more access procedures defining procedures to access the second content type, to the browser in response to the request, allowing the browser to access a selected one of any of the content of a first content type and content of a second content type using the one or more access methods defining procedures to access the content type of the selected content from the GDTO, and thus converting the content type of the selected content into a content type readable by the browser.

US Pat. No. 9,904,456

GESTURE-BASED VISUALIZATION OF DATA GRID ON MOBILE DEVICE

Business Objects Software...

1. A computer-implemented method comprising:
a mobile device displaying a data grid comprising numerical values arranged in rows and columns of table cells, the columns
including column headers;

a functional module of the mobile device receiving a user drag gesture in the data grid displayed by the mobile device;
in response to the user drag gesture, the function module generating a data grid visualization comprising a modified table
cell combining multiple table cells, the modified table cell including a chart replacing numerical values of the multiple
table cells; and

the function module generating a composite header for a column including the modified table cell, the composite header replacing
column headers of multiple table cells being combined and indicating a source of data of the modified table cell.

US Pat. No. 9,830,370

VISUALIZATION SUGGESTION APPLICATION PROGRAMMING INTERFACE

Business Objects Software...

1. A method comprising:
accessing a dataset and a user selection of at least one column of the dataset by at least one hardware processor, the dataset
including at least one online analytical processing (OLAP) cube with each column of the cube classified as a measure or classified
as a dimension;

determining, by the at least one hardware processor, which type of analysis to perform on each of the unselected columns of
the dataset based on:

the classification of the at least one column selected by a user; and
the unselected column being classified as a dimension and a cardinality of the dimension satisfying specified criteria;
analyzing the dataset, by the at least one hardware processor, to generate a score for each unselected column of the dataset
based on a degree of dependency between each of the unselected columns and the at least one selected column;

iteratively displaying a ranking of the unselected columns according to the scores, and accessing a user selection of one
more column by the at least one hardware processor until a threshold number of columns has been selected;

accessing the selected columns of the dataset by the at least one hardware processor; and
selecting, by the at least one hardware processor, a specified number of visualization configurations compatible with the
selected columns from a set of visualization configurations and providing the compatible visualization configurations to a
user, wherein the selecting is based at least in part on a quantity of the selected columns and based at least in part on
at least one constraint of a visualization configuration of the specified number of visualization configurations.

US Pat. No. 9,432,473

ONLINE PRESENCE MANAGEMENT FOR WEB SITES

Business Objects Software...

1. A method comprising:
receiving, at a server, an IMP request from a browser associated with a device of a user, the HTTP request being associated
with a navigation within a hosted network;

in response to the HTTP request, rendering and returning to the device of the user an HTML page with code, the code causing
publication of a presence message, by the browser, to indicate a presence state change;

receiving, at the server, the presence message from the browser, the user being associated with a plurality of channels, the
plurality of channels being communication channels including both a user presence channel indicating a presence of the user
on a networked system and one or more activity channels each corresponding to an activity comprising a group of members in
which the user is simultaneously a member and can perform work within, the user presence channel being distinct from the one
or more activity channels;

identifying, by the server, a presence state change indicated in the presence message;
determining, by the server, an activity channel of the plurality of channels associated with the user affected by the presence
state change;

determining, by the server, a subscriber that subscribed to one or more of the plurality of channels associated with the user,
the subscriber having explicitly subscribed to the one or more of the plurality of channels and being distinct from a member
of the activity;

determining, by the server, whether the subscriber subscribed to the activity channel affected by the presence state change;
and

electronically transmitting, using one or more processors of the server, presence information indicating the presence state
change to a device of the subscriber for display on the device of the subscriber, a type of the presence information electronically
transmitted to the device of the subscriber being based on the determining whether the subscriber subscribed to the activity
channel, the presence information causing the device of the subscriber to display either:

an online indication based on the subscriber not having explicitly subscribed to the activity channel affected by the presence
state change, or

an active indication based on the subscriber having explicitly to the activity channel affected by the presence state change.

US Pat. No. 10,007,708

SYSTEM AND METHOD OF PROVIDING VISUALIZATION SUGGESTIONS

Business Objects Software...

1. A system comprising:at least one processor; and
a non-transitory computer-readable medium storing executable instructions that, when executed, cause the at least one processor to perform operations comprising:
determining a current visualization of at least a portion of data of a dataset to be displayed to a user in a graphical user interface of a device, the dataset comprising a plurality of measures and a plurality of dimensions, the current visualization comprising a graphical representation of the at least a portion of data, the at least a portion of data comprising at least one of the plurality of measures and at least one of the plurality of dimensions; and
generating a plurality of visualization candidates based on an application of transition rules to the current visualization, each one of the plurality of visualization candidates comprising a different graphical representation of data of the dataset, the generating of the plurality of visualization candidates comprising omitting at least one possible visualization candidate from the plurality of visualization candidates based on the transition rules, the generating the plurality of visualization candidates comprising searching through a search space of transitions from the current visualization to other visualizations, the application of the transition rules reducing the search space that is searched in the generating, the plurality of visualization candidates;
generating a corresponding score for each one of the plurality of visualization candidates based on a corresponding level of data variance for the data of the one of the plurality of visualization candidates, the corresponding level of data variance for the data having a direct effect on the corresponding score for the each one of the plurality of visualization candidates such that an increase in the corresponding level of data variance for the data results in an increase in the corresponding score and a decrease in the corresponding level of data variance for the data results in a decrease in the corresponding score, the generated corresponding score for each one of the plurality of visualization candidates being further based on at least one of usage data of a measure of the each one of the plurality visualization candidates, usage data of a dimension of the each one of the plurality of visualization candidates, usage data of a chart type of the each one of the plurality of visualization candidates, profile information of the user, and explicit user feedback for a measure, dimension, or chart type of the corresponding visualization candidate,
generating a ranking of the plurality of visualization candidates based on the corresponding scores of the plurality of visualization candidates;
selecting at least one of the plurality of visualization candidates based on the ranking; and
causing a plurality of selectable visualization suggestions corresponding to the selected visualization candidates to be displayed to the user in the graphical user interface of the device.

US Pat. No. 9,824,470

USE OF DYNAMIC NUMERIC AXIS TO INDICATE AND HIGHLIGHT DATA RANGES

Business Objects Software...

1. A computer-implemented method comprising:
causing display of a graph using an application of a computer, the graph comprising at least two axes and a plurality of graphical
elements representing data relative to the at least two axes;

receiving user input highlight rules for the graph, the rules including a user input value and an indication that graphical
elements of the plurality of graphical elements should be highlighted based on whether a value of a portion of the graphical
elements is greater than the user input value or an indication that graphical elements of the plurality of graphical elements
should be highlighted based on whether a value of a portion of the graphical elements is less than the user input value;

analyzing, using at least one processor of the computer, a value of each graphical element of the plurality of graphical elements,
to determine whether a portion of the graphical element is greater than the user input value or whether a portion of the graphical
element is less than the user input value, based on the user input highlight rules;

identifying, using at least one processor of the computer, a portion of at least one graphical element of the plurality of
graphical elements that satisfies the user input highlight rules based on the portion of the at least one graphical element
of the plurality of graphical elements that is greater than the user input value or the portion of the at least one graphical
element of the plurality of graphical elements that is less than the user input value;

modifying the display of the graph to highlight the portion of the at least one graphical element of the plurality of graphical
elements to indicate the portion of the at least one graphical element of the plurality of graphical elements that is greater
than the user input value or the portion of the at least one graphical element of the plurality of graphical elements that
is less than the user input value based on the user input highlight rules; and

wherein the modified display of the graph is displayed to the user.

US Pat. No. 9,875,119

EXTENSIBILITY FRAMEWORK

Business Objects Software...

1. A method comprising:
running a bundle loader in response to a communication from an application, the communication indicating that a plurality
of bundles of components in the application are to be executed, the plurality of bundles including a first bundle having a
component that depends on a dependency component in another of the plurality of bundles but whose dependency is not specified
in the first bundle, the bundler loader performing loading of the plurality of bundles by executing operations comprising:

retrieving a configuration file indicating a first set of the plurality of bundles to load in the bundle loader;
adding each bundle in the first set of plurality of bundles to an activation queue;
operating the bundle loader to load a bundle manifest for each bundle in the first set of the plurality of bundles, the bundle
manifest for the first bundle specifying an abstract dependency between the first bundle and a service; and

for each of bundles in the first set of plurality of bundles:
activating the bundle, using the bundle loader, subsequent to the loading of the bundle manifest for each bundle in the first
set of the plurality of bundles, if no unactivated dependency component exists for any component in the bundle, wherein the
activating includes requesting a service implementation, from a service registry, for any abstract dependencies specified
in the bundle manifest for the bundle, receiving one or more service implementations from the service registry, and running
each component in the bundle using the one or more service implementations, wherein the activating the bundle comprises activating
the bundle at a head of the activation queue if no unactivated dependency component exists for any component in the bundle
and, for each of bundles in the first set of plurality of bundles, placing the bundle at an end of the activation queue if
an unactivated dependency component exists for any component in the bundle.

US Pat. No. 10,013,303

DETECTING ANOMALIES IN AN INTERNET OF THINGS NETWORK

Business Objects Software...

1. A computer-implemented method comprising:receiving, by operation of a computer system, a dataset of a plurality of data records, each of the plurality of data records comprising a plurality of features and a target variable associated with the plurality of features, each feature of the plurality of features representing a reading of a separate sensor coupled to a machine and measuring a condition of the machine, and the target variable representing a status of the machine;
identifying a set of normal data records from the dataset based on the target variable;
identifying inter-feature correlations by performing correlation analysis on the set of normal data records; and
performing predictive maintenance on the machine based on a detection of an anomaly based on the inter-feature correlations for predictive maintenance, wherein the detection of the anomaly comprises:
identifying a cluster of correlated features based on the inter-feature correlations, wherein a set of correlated features forms the cluster of correlated features if a correlation between each pair of correlated features of the set of correlated features exceeds a minimum threshold value; and
building a model that estimates a first feature in the cluster of correlated features based on one or more other features in the cluster of correlated features.

US Pat. No. 9,798,449

FUZZY SEARCH AND HIGHLIGHTING OF EXISTING DATA VISUALIZATION

BUSINESS OBJECTS SOFTWARE...

1. A computer system comprising:
one or more processors;
a software program, executable on said computer system, the software program configured to:
provide in a Random Access Memory (RAM) of a client located remote from a server, an application layer storing,
a dataset comprising a dimension name, a dimension value, and a measure name responsive to a database query issued by the
client to the server, and

an existing visualization of the dataset including a first visualization element;
cause the application layer to further store executable code of a functional module of the application layer receiving a search
input from a user, the search input comprising a dimension name, a dimension value, or a measure name, the functional module
automatically creating a box displaying the search input;

cause a search engine of the functional module to search the dataset according to the search input and a fuzzy search index
to produce a search result;

cause a visualization engine of the functional module to transform the search result and the existing visualization to create
a highlighted visualization including a first changed appearance of the first visualization element and a second changed appearance
of a second visualization element of the existing visualization, the second changed appearance different from the first changed
appearance; and

cause the application layer to communicate the highlighted visualization to the user;
wherein the software program is further configured to:
cause the functional module to receive an extended input reflecting a filter from the user in response to the highlighted
visualization;

cause the functional module to process the dataset according to the extended input to produce an extended search result smaller
than the search result;

cause the functional module to generate an extended visualization from the extended search result and the highlighted visualization,
the extended visualization including fewer elements than the highlighted visualization;

cause the functional module to store the extended visualization in the RAM; and
cause the application layer to communicate the extended visualization to the user.

US Pat. No. 9,582,475

PACKAGING BUSINESS INTELLIGENCE DOCUMENTS WITH EMBEDDED DATA

Business Objects Software...

1. A method for processing data associated with a business intelligence file, the method comprising:
extracting metadata and business data from the business intelligence file, the business intelligence file associated with
a business intelligence specification;

converting, based on the business intelligence specification, the extracted metadata into a first format and the extracted
business data into a second format;

packaging the converted metadata in the first format and the converted business data in the second format into a data bundle;
generating rendering instructions, based, in part, on information associated with the data bundle;
the rendering instructions enabling a document viewer to render visualizations of the business data in a visual interactive
document, the document viewer supporting the business intelligence specification;

packaging the generated rendering instructions in an application bundle;
combining the data bundle and the application bundle into a combined bundle having a format consumable by the document viewer;
and

embedding the combined bundle into the document viewer to enable the visualizations of the business data in the visual interactive
document to be displayed.

US Pat. No. 10,102,652

BINNING TO PREVENT OVERPLOTTING FOR DATA VISUALIZATION

Business Objects Software...

1. A computer-implemented method executed by one or more processors, the method comprising:identifying a first request to generate a chart including a first plotting area, the first request indicating a first set of data points to be displayed in the first plotting area of the generated chart, wherein the first plotting area is defined by a first horizontal axis and a first vertical axis and at least one of the first horizontal axis or the first vertical axis of the requested chart is a discrete axis defining a number of channels spanning the first plotting area, each channel representing one value on the discrete axis;
determining whether the requested chart will be unsuitable for display based on the first request, wherein determining whether the requested chart will be unsuitable comprises determining that a size of each channel of a discrete axis is less than a threshold number of pixels of a device on which the requested chart is to be displayed;
in response to determining that the requested chart will be unsuitable for display, automatically, and without user input requesting binning associated with the requested chart, causing a renderer to switch from a standard rendering mode to a binning mode and rendering the requested chart by:
dividing the first plotting area into a first plurality of bins, each of the bins having a shape, the shapes of the bins configured to tessellate the first plotting area in response to determining that the requested chart will be unsuitable for display;
assigning each data point from the set of data points to one of the first plurality of bins based on a position of each data point within the first plotting area of the requested chart;
generating a modified chart including the first plotting area of the requested chart, the plotting area including the plurality of bins, and each particular bin of the plurality of bins configured to indicate a number of data points from the set of data points that are assigned to the particular bin;
after generating the modified chart, identifying a second request to zoom in on a particular selected bin included in the modified chart; and
in response to identifying the second request to zoom in on the particular selected bin, automatically generating a second modified chart with a second horizontal axis representing a subsection of values represented by the first horizontal axis and a second vertical axis representing a subsection of values represented by the first vertical axis, wherein the second horizontal axis and the second vertical axis are chosen based on the particular selected bin and correspond to a range of values represented by the particular selected bin, wherein the second modified chart is associated with a second plotting area based on the particular selected bin and the corresponding range of values represented by the particular bin, and wherein generating the second modified chart comprises:
dividing the second plotting area into a second plurality of bins different from the first plurality of bins, each of the bins having a shape, the shapes of the bins configured to tessellate the second plotting area;
assigning each data point from the set of data points to one of the second plurality of bins based on a position of each data point within the second plotting area;
generating a second modified chart including the second plotting area, the second plotting area including the second plurality of bins, and each particular bin of the second plurality of bins configured to indicate a number of data points from the set of data points that are assigned to the particular bin; and
in response to determining that the requested chart is not unsuitable for display, rendering the identified chart using the standard rendering mode in accordance with the identified first request.

US Pat. No. 10,049,112

SYSTEM AND METHOD FOR MONITORING OF DATABASE DATA

Business Objects Software...

1. A computer-implemented method, the method comprising:obtaining, at a database application, a selection of one or more database metadata items from a user device, wherein each database metadata item includes human-intelligible content that identifies an associated database object in a database;
calculating a combined score for each of a plurality of predefined database views of the database application, the combined score of a respective predefined database view being calculated as a multiplication of: i) a matrix, each cell of the matrix indicating a number of a respective one of the database objects that are associated with the selected one or more database metadata items and that are included in the respective predefined database view, and ii) a vector of database object popularity statistics, each column of the vector indicating a number of previous user selections of a respective one of the database objects included in the respective predefined database view;
identifying, from the plurality of predefined database views of the database application, one or more predefined database views having a highest combined score;
registering the identified one or more predefined database views;
monitoring, by a polling engine, to detect updates made to the one or more predefined database views after the registering; and
triggering, by the polling engine, a push notification server to push an update notification to the user device in response to detecting at least one update made to the one or more predefined database views.

US Pat. No. 9,779,151

VISUALIZING RELATIONSHIPS IN DATA SETS

Business Objects Software...

1. A method comprising:
displaying, by one or more computer systems, a user interface comprising a cause region and an effect region, the cause region
and the effect region representing non-overlapping defined areas within the user interface;

displaying, by the one or more computer systems, a plurality of dimension objects and a plurality of measure objects adjacent
to the cause region and the effect region, respectively, each dimension object representing an input category associated with
an input quantity that contributes to a total quantity in a data set, each measure object representing an output category
associated with an output quantity based on at least one quantity of at least one input category represented by at least one
dimension object;

detecting, by the one or more computer systems, a first input to move a first dimension object into the cause region, the
first dimension object representing a first input category associated with a first input quantity, wherein the first input
category is associated with a plurality of input subcategories;

detecting, by the one or more computer systems, a second input to move a first measure object into the effect region, the
first measure object representing a first output category associated with a first output quantity;

in response to detecting the first input and the second input:
displaying, by the one or more computer systems, the first dimension object in the cause region, wherein the displayed first
dimension object includes a display of a subset of the plurality of input subcategories around an outside border of the first
dimension object,

displaying, by the one or more computer systems, the first measure object in the effect region,
determining, from the data set and by the one or more computer systems, the first output quantity based on the first input
quantity from the total quantity in the data set,

displaying, by the one or more computer systems, a result representing the first output quantity in the first measure object;
and

detecting, by the one or more computer systems, a selection of a first input subcategory from the subset of the plurality
of input subcategories displayed around the outside border of the first dimension object, the selected first input subcategory
associated with a first sub-input quantity representing a portion of the first input quantity; and

in response to detecting the selection of the first input subcategory:
determining, from the data set, a revised output quantity based on the first sub-input quantity from the total quantity in
the data set, and

replacing the result displayed in the first measure object with a new result representing the revised output quantity corresponding
to the first sub-input quantity.

US Pat. No. 9,946,804

DISPLAYING HISTORICAL DATA ASSOCIATED WITH DATA VALUES WITHIN BUSINESS INTELLIGENCE REPORTS

BUSINESS OBJECTS SOFTWARE...

1. A method comprising:receiving, at a client browser of a computing device, a first request to display historical data associated with one or more data values of a business intelligence report;
sending, by the computing device to a server system executed in an application layer, a second request for generating the historical data in response to the first request, the server system sending to a representational state transfer engine a third request for a uniform resource locator identifying a location of a file to be filled with the historical data in response to the second request, the representational state transfer engine executing in response to the third request a representational state transfer service to fetch the historical data from past instances of the business intelligence report and to fill the file with the historical data, the representational state transfer service generating the uniform resource locator specific to the third request, the representational state transfer engine sending the uniform resource locator to the server system;
receiving, by the computing device and from the server system, the uniform resource locator; and
displaying the uniform resource locator on the client browser of the computing device, the file with the historical data being displayed on the client browser when the uniform resource locator is selected.

US Pat. No. 9,972,105

VISUALIZATION OF DATA CLUSTERS

Business Objects Software...

1. A method, comprising:providing a first graph for presentation, the first graph representing a plurality of groups, each group representing an aggregated set of data points grouped based on a first set of common attributes;
identifying a selection of a particular group of the plurality of groups;
analyzing the aggregated set of data points represented by the selected particular group to determine whether the number of aggregated set of data points exceeds a threshold number of data points; and
in response to determining that the number of aggregated set of data points exceeds the threshold number of data points, re-grouping the aggregated set of data points, wherein re-grouping the aggregated set of data points includes:
identifying a maximum number of groups and a maximum number of data points in each group;
identifying a second set of common attributes different from the first set of common attributes and associated with the aggregated set of data points;
aggregating the data points based on the second set of common attributes and further based on the maximum number of groups and a maximum number of data points in each group; and
providing a second graph for presentation, the second graph representing a plurality of groups, each group representing an aggregated subset of data points from the aggregated set of data points.

US Pat. No. 9,870,417

MERGING BUSINESS OBJECT HIERARCHIES

Business Objects Software...

1. A computer-implemented method executed by one or more processors, the method comprising:
identifying a first object hierarchy including one or more objects, each of the one or more objects representing a query associated
with a data set, each of the objects in the first object hierarchy associated with a key value;

identifying a second object hierarchy including one or more objects, each of the objects in the second object hierarchy associated
with a key value; and

generating a merged object hierarchy including the one or more objects from the first object hierarchy and the one or more
objects from the second object hierarchy, wherein generating the merged hierarchy includes, for each object in the second
object hierarchy:

determining whether the object in the second object hierarchy matches an object in the first object hierarchy; and
in response to a determination that the object in the second object hierarchy matches an object in the first hierarchy:
determining whether the object in the second object hierarchy has a parent object and determining whether the object in the
first object hierarchy has a parent object;

in response to a determination that the object in the second object hierarchy has a parent object and the object in the first
object hierarchy does not have a parent object, merging the object in the first object hierarchy and the object in the second
object hierarchy;

in response to a determination that the object in the second object hierarchy and the object in the first object hierarchy
have a common parent object, merging the object in the first object hierarchy and the object in the second object hierarchy;
and

in response to a determination that the object in the second object hierarchy and the object in the first object hierarchy
have different parent objects, separately maintaining the object in the first object hierarchy and the object in the second
object hierarchy.

US Pat. No. 10,255,376

COMPUTER IMPLEMENTED SYSTEMS AND METHODS FOR PROCESSING SEMI-STRUCTURED DOCUMENTS

Business Objects Software...

1. A computer-implemented method comprising:receiving a plurality of semi-structured documents from a data store, wherein the plurality of semi-structured documents comprise a plurality of fields having associated values;
analyzing, by one or more computers, the plurality of semi-structured documents to determine particular fields in each of the plurality of semi-structured documents, wherein a first field comprises a first document collection and a second field comprises a second document collection;
receiving further information from a user designating the first document collection and the second document collection as a linked collection;
determining, by the one or more computers, a frequency that each particular field appears in the plurality of semi-structured documents;
storing, in one or more computer memories, the particular fields and associated frequencies in a tree data structure, wherein the storing comprises storing an identifier of the linked collections with the first document collection and with the second document collection;
displaying a graphical visualization reflecting a hierarchy of the plurality of fields, the graphical visualization comprising a leaf node having an atomic value, the graphical visualization further indicating the linked collections by repeating the first document collection and the second document collection in the tree data structure;
receiving an interaction with the leaf node of the graphical visualization, wherein the interaction comprises a filter applied to the first document collection;
in response to the interaction with the leaf node, generating a flattened subset of the particular fields and associated values, wherein the flattened subset reflects removal of an element from the first document collection, with removal of the element from the second document collection being based upon a consistency with the linked collection;
displaying the flattened subset in a table;
determining a similarity between nodes in the graphical visualization;
collapsing the nodes into a single graphical element in the visual representation when the similarity is greater than a threshold; and
collapsing the tree data structure in memory when the similarity is greater than the threshold.

US Pat. No. 10,095,389

GESTURE-BASED ON-CHART DATA FILTERING

Business Objects Software...

1. A method comprising:causing, by one or more processors of a machine, display of a two-dimensional-axes data chart in a graphical user interface (GUI), the two-dimensional-axes data chart comprising, along a category axis, a plurality of category-label rows each indicating a different corresponding plurality of categories;
detecting, by one or more processors of the machine, a selecting gesture that includes a touching of or click on one of the displayed category-label rows in the GUI, whereby that category-label row is selected, the selected category-label row indicating a selected plurality of categories distinct from a non-selected plurality of categories indicated by a non-selected category-label row;
detecting, by one or more processors of the machine, a filtering gesture that includes a touching of or click on the selected category-label row in the GUI followed by a swipe on the selected category-label row in the GUI, the detected filtering gesture indicating that the selected plurality of categories are not of interest; and
generating, by one or more processors of the machine and in response to the detected filtering gesture, and causing display of an interest-improved version of the two-dimensional-axes data chart in the GUI by executing a rendering procedure that corresponds to the selected category-label row, the rendering procedure calculating a corresponding representative value for each of the non-selected plurality of categories uninfluenced by the selected plurality of categories and generating the interest-improved version of the two-dimensional-axes data chart, the interest-improved version omitting the selected category-label row and depicting the calculated representative values for the non-selected plurality of categories indicated by the non-selected category-label row, the omitting of the selected category-label row indicating that the selected plurality of categories are not of interest and did not influence the calculating of the representative values for the non-selected plurality of categories.

US Pat. No. 10,310,846

AUTOMATED APPROACH FOR INTEGRATING AUTOMATED FUNCTION LIBRARY FUNCTIONS AND ALGORITHMS IN PREDICTIVE ANALYTICS

Business Objects Software...

1. A method comprising:identifying a user request to create a new function based on at least one of pre-existing algorithms, the new function to be used in an application used by a user;
providing, in a first presentation via a user interface, a set of available algorithms from an algorithm library;
receiving, via the user interface, a user selection of an algorithm from the set of available algorithms for initial creation of the new function, the algorithm including a set of available parameters, wherein each parameter of the set of available parameters is user-selectable for inclusion into or exclusion from the new function based on the user selection of the algorithm;
providing, in a second presentation via the user interface, the set of available parameters;
receiving, via the user interface for each parameter of the set of available parameters, a user election of whether to include or exclude the parameter for use in the new function;
generating, using a package class of a package of nodes implementing executable components parameterized by users using the user interface, an executable component in response to receiving the user selection of the algorithm and the user election of whether to include or exclude each parameter for use, the executable component defined in an execution component node in the package and serving as a central execution component for the new function, the package including a metadata node corresponding to the execution component node and enabling the execution component node to be persisted in a local tile system or a repository provided by a platform hosting the application, the executable component configured to execute the new function, including:
for a given parameter that the user has elected to include in the new function, the executable component including the parameter in the new function; and
for a given parameter that the user has elected for exclude from the new function, the executable component excluding the parameter from the new function; and
storing the executable component for subsequent execution in response to the requested new function, the executable component for executing the new function.

US Pat. No. 10,255,345

MULTIVARIATE INSIGHT DISCOVERY APPROACH

Business Objects Software...

1. A method comprising:identifying, by the at least one processor, data types of a raw dataset and models of data of the raw dataset to determine attribute hierarchies;
generating, by the at least one processor, a reduced dataset from the raw dataset based on the determined attribute hierarchies by:
mapping, by the at least one processor, the attribute hierarchies to identify sets of equivalent attributes and measures;
for each set of equivalent attributes, selecting, by the at least one processor, one of the equivalent attributes and discarding the remaining equivalent attributes; and
for each set of equivalent attributes, selecting, by the at least one processor, one of the equivalent measures and discarding the remaining equivalent measures:
aggregating over at least one attribute of the reduced dataset, by the at least one processor, to generate a preprocessed dataset with the same relevant statistical properties of the raw dataset, such that at least one type of statistical analysis produces the same results when applied to the preprocessed dataset as when applied to the raw dataset;
identifying, by the at least one processor, subsets of the preprocessed dataset that include data that exhibits non-random patterns by performing the at least one type of statistical analysis;
generating a score for each of the identified subsets of the preprocessed dataset, by the at least one processor, based on the data that exhibits non-random patterns included in each of the identified subsets;
ranking each of the identified subsets for presence of non-random data structures, by the at least one processor, based on the score generated for each of the identified subsets;
selecting, by the at least one processor, an identified subset based on the ranking of the identified subset; and
generating, by the at least one processor, a visualization that highlights a non-random structure of the selected identified subset.

US Pat. No. 10,338,672

SYSTEM AND METHOD FOR MANIPULATING OBJECTS IN A GRAPHICAL USER INTERFACE

Business Objects Software...

1. A computer-implemented method for manipulating objects in a graphical user interface for a display device, the method comprising:detecting a start of a path selection mode;
detecting a first path traversed by a cursor in the graphical user interface;
displaying a curve corresponding to the first path in the graphical user interface; and
upon detecting an end of the path selection mode, updating a selection state of one or more objects displayed in the graphical user interface based on the displayed curve, the selection state including a selected state and a deselected state, the updating of the selection state of the one or more objects comprising, for each of the one or more objects:
determining a total number of times that the displayed curve passes across the object;
toggling the selection state of the object based on the number of times being an odd number; and
not toggling the selection state of the object based on the number of times being an even number.

US Pat. No. 10,191,966

ENABLING ADVANCED ANALYTICS WITH LARGE DATA SETS

Business Objects Software...

1. A computer-implemented method comprising:receiving, by operation of a computer system, a dataset of a plurality of data records, each of the plurality of data records comprising a plurality of features and one or more target variables;
selecting key features among the plurality of features based at least on relevance measures of the plurality of features with respect to the one or more target variables, wherein selecting key features among the plurality of features comprises:
selecting a first subset of data records with a first size from the dataset of the plurality of data records;
selecting a first subset of features from the plurality of features of the first subset of data records;
selecting a second subset of features from the plurality of features of the first subset of data records;
computing a similarity metric between the first subset of features and the second subset of features;
determining that the first subset of features and the second subset of features converge based on the similarity metric; and
in response to the determination, identifying key features of the dataset based on the first subset of features and the second subset of features of the first subset of data records;
calculating a first set of relevance measures of each of the first subset of features with respect to the target variable;
calculating a second set of relevance measures of each of the second subset of features with respect to the target variable; and
wherein computing a similarity metric comprises computing the similarity metric based on the first set of relevance measures and the second set of relevance measures;
dividing the dataset into a plurality of subsets;
for each of the plurality of subsets, identifying a plurality of clusters and respective centroids of the plurality of clusters based on the key features;
identifying a plurality of final centroids based on the respective centroids of the plurality of clusters for the each of the plurality of subsets, the plurality of final centroids being respective centroids of a plurality of final clusters; and
for each data record in the plurality of subsets, assigning the data record to one of the plurality of final clusters based on distances between the data record and the plurality of final centroids.

US Pat. No. 10,379,969

EPHEMERAL STORE-BASED AUTO-SAVE FOR APPLICATIONS WITH A PERSISTENCE LAYER

Business Objects Software...

1. A method comprising:receiving, from an application, user inputs associated with a database management system, the user inputs being associated with a particular user and a particular application;
identifying, from an auto-save cache index, one or more ephemeral tables that are associated with the user inputs, the ephemeral tables mapped to one or more tables in the database management system;
updating, using the user inputs and the auto-save cache index, the one or more ephemeral tables:
automatically storing, on a temporal basis, information associated with the user inputs; and
surviving database sessions, transaction boundaries, and database management system restarts, wherein surviving includes being retained and not being deleted or lost; and
performing a revert operation including:
receiving an indication to revert the user inputs to a previous version, including identifying the particular user and the particular application associated with the user inputs;
receiving a version of interest associated with the user inputs;
retrieving the user inputs from the auto-save cache, including entries in the one or more ephemeral tables associated with the version, the particular user, and the particular application; and
providing the user inputs.

US Pat. No. 10,332,010

SYSTEM AND METHOD FOR AUTOMATICALLY SUGGESTING RULES FOR DATA STORED IN A TABLE

Business Objects Software...

1. A method of automatically suggesting rules for data stored in a table, the table comprising a plurality of columns, the method comprising:for each of one or more of the columns that do not have a content type explicitly provided in the table, identifying, using at least one hardware processor, a content type for the column by inferring the content type for the column based on an analysis of a format of data in the column and statistics generated by applying a function to data in the column, the content type being a meaning of data values stored in a particular column;
accessing a rule knowledge database to locate rules specified for identified content types;
generating a graphical user interface, the graphical user interface containing a series of rows and columns, each row of the graphical user interface corresponding to a different content type identified by or inferred for the table;
rendering a selectable button in a first column of the graphical user interface;
in response to detection of a user selection of the selectable button, rendering the suggested rules for the identified content types in the first column;
receiving acceptance of one or more of the suggested rules from a user via the graphical user interface;
applying accepted rules for data quality detection and monitoring;
storing the received acceptance in the rule knowledge database; and
applying the user acceptance knowledge in future rule suggestion.

US Pat. No. 10,305,967

UNIFIED CLIENT FOR DISTRIBUTED PROCESSING PLATFORM

Business Objects Software...

1. A computer-implemented method performed by at least one processor that executes an application, the method comprising:accessing, by the at least one processor, a unified client from the application, the unified client including a plurality of sub-clients that are each configured to interface with a respective sub-system of a distributed processing platform that includes a plurality of sub-systems;
establishing, by the at least one processor, through the unified client, a single session for communications between the unified client and at least two of the plurality of sub-systems included in the distributed processing platform, wherein the single session is a unified session that includes at least: i) a first connection that connects a first sub-client with a first sub-system, and ii) a second connection that connects a second sub-client with a second sub-system, wherein the first connection is associated with the second connection in a connection pairing that is described in a unified connection repository; and
during the single session, interfacing, by the at least one processor, the application with the first sub-client of the unified client to request the first sub-system of the distributed processing platform to perform at least one first data processing operation, and switching to interface the application with the second sub-client of the unified client to request the second sub-system of the distributed processing platform to perform at least one second data processing operation, the switching being based on the connection pairing that associates the first connection with the second connection.

US Pat. No. 10,248,713

TIME SERIES ANALYSIS USING A CLUSTERING BASED SYMBOLIC REPRESENTATION

Business Objects Software...

1. A computer-implemented method performed by at least one processor, the method comprising:receiving, by the at least one processor, time series data that includes a plurality of time series;
determining, by the at least one processor, a time window matrix that includes the plurality of time series each divided into a plurality of subsequences;
executing, by the at least one processor, a clustering algorithm to determine clusters, each of the clusters including a set of subsequences that represent a similar pattern among the subsequences of the plurality of time series;
modifying, by the at least one processor, the time window matrix by replacing one or more data elements of the time window matrix with one or more symbols that each correspond to a cluster; and
employing, by the at least one processor, the modified time window matrix to determine one or more discretized time series with a symbolic representation;
employing, by the at least one processor, the symbolic representation of the one or more time series to determine at least one prediction regarding the time series data.

US Pat. No. 10,445,920

METHODS, APPARATUS AND SYSTEM FOR ANALYTICS REPLAY UTILIZING RANDOM SAMPLING

Business Objects Software...

1. A method for generating an animated data visualization, the method comprising:executing a first data query on a data structure in a database, the first data query having a first sample size describing a first number of rows at the data structure retrieved by the first data query;
determining, using one or more hardware processors, a time measurement for performing the first data query, the time measurement being an amount of time between a submission of the first data query and obtaining a first data query result;
selecting, using the one or more hardware processors, a second sample size based on the time measurement and a frame refresh rate, wherein the second sample size describes a second number of rows at the data structure, and wherein the second number of rows at the data structure is different than the first number of rows;
executing a second data query on the data structure, the second data query having the second sample size; and
generating, using the one or more hardware processors, the animated data visualization based on one or more results of the second data query.

US Pat. No. 10,437,911

FAST BULK Z-ORDER FOR GRAPHIC ELEMENTS

Business Objects Software...

1. A method of altering ordering of graphical elements to be presented on a display, the method comprising:representing a plurality of graphical elements as a document object model (DOM) having a plurality of nodes, each node representing a different graphical element, the DOM having an ordering of the nodes, each node having a z-value field assigned a value of either front or back, indicating that a corresponding graphical element is to be displayed in a front layer for a z-value of front or a back layer for a z-value of back;
altering the value in the z-value field of a plurality of nodes having a z-value of back to have a z-value of front; and
reordering the DOM so that the plurality of nodes having altered values in their respective z-value fields are at the front of the DOM, in front of any nodes having an unaltered value of front in their corresponding z-value fields, while maintaining relative ordering among the plurality of nodes having altered values in their respective z-value fields.

US Pat. No. 10,417,223

SYSTEM AND METHOD OF DATA WRANGLING

Business Objects Software...

1. A system comprising:at least one processor; and
a non-transitory computer-readable medium storing executable instructions that, when executed, cause the at least one processor to perform operations comprising:
receiving an identification of a dataset and at least one configuration parameter submitted by a user via a graphical user interface (GUI) on a computing device of the user;
configuring a sampling algorithm based on the at least one configuration parameter; and
generating a sample of data from the dataset using the configured sampling algorithm, the time parameter limiting an execution time of the generating the sample of data to within a maximum amount of time indicated by the user.

US Pat. No. 10,338,769

SYSTEM AND METHOD OF PROVIDING VISUALIZATION EXPLANATIONS

Business Objects Software...

1. A system comprising:at least one processor on a server; and
a non-transitory computer-readable medium, coupled to the server, storing executable instructions that, when executed, cause the at least one processor to perform operations comprising:
receiving an indication of a selected data point of a current visualization, the current visualization comprising a graphical representation of the plurality of data points, each one of the plurality of data points having a corresponding dimension and measure;
determining a context of the selected data point based on the corresponding dimension of the data point;
generating a plurality of explanation candidates based on the context, each one of the plurality of explanation candidates having a different dimension context that is within the context of the selected data point and a corresponding value for the dimension context;
generating, for each one of the plurality of explanation candidates, a corresponding score based on a difference between the value for the corresponding explanation candidate and an average value of the values of the plurality of explanation candidates, the difference affecting the corresponding score positively, such that the greater the difference is, the greater the corresponding score will be;
generating a ranking of the plurality of explanation candidates based on the scores;
selecting at least one of the explanation candidates based on the ranking; and
causing a corresponding selectable explanation for each one of the selected at least one explanation candidate to be displayed to a user in a graphical user interface of a client device concurrently with the current visualization, the corresponding selectable explanation for each one of the selected at least one explanation candidate comprising the corresponding value of the corresponding one of the selected at least one explanation candidate, the server being remote from the client device and operatively connected, via a network, to the client device.

US Pat. No. 10,459,932

VISUALIZING LARGE DATA VOLUMES UTILIZING INITIAL SAMPLING AND MULTI-STAGE CALCULATIONS

Business Objects Software...

1. A computer-implemented method comprising:a first, in-memory database engine of an interface layer comprising an in-memory database, communicating with a separate layer comprising a large volume of stored data, to receive a first dataset representing a sample of the large volume of stored data, wherein the sample is prepared from a SUM aggregation operation or a COUNT aggregation operation leveraging an existing functionality in the separate layer, wherein communicating the first dataset comprises:
the first, in-memory database engine receiving the sample from the separate layer; and
the first, in-memory database engine refining the sample to provide the first dataset, wherein the refining comprises binning;
the first, in-memory database engine storing the first dataset in the in-memory database;
the first, in-memory database engine creating from the first dataset, a multi-stage calculation plan configured to receive a minimal grouping set as input;
a second engine executing a SQL operation comprising Rank, on the first dataset according to the calculation plan to produce a first result set;
the second engine receiving from the separate layer, a second dataset comprising the minimal grouping set;
the second engine performing a SORT SQL operation on the second dataset according to the calculation plan to produce a second result set; and
the first, in-memory database engine creating a visualization from the second result set, the visualization including an icon explaining that the second result set simulates the large volume of stored data, and explaining that there is an error margin in the second result set.

US Pat. No. 10,459,744

INTERACTIVE HOTSPOT HIGHLIGHTING USER INTERFACE ELEMENT

Business Objects Software...

1. A computer-implemented method comprising:an in-memory database engine receiving a first interaction between a first device having a first form factor of a user, and a software application;
the in-memory database engine storing in an in-memory database, context data reflecting the first interaction, the context data comprising a linkage between a page and a room of a workflow, with another page and another room of a different step of the workflow;
the in-memory database engine determining an experience level of the user based upon the context data;
the in-memory database engine storing the experience level with the context data in the in-memory database;
the in-memory database engine processing the context data to generate an interface including a hotspot of a user interface element of the software application and associated help information;
in response to a second interaction between the user and the hotspot, the in-memory database engine providing the help information based upon the experience level in a panel embedded in the interface;
the in-memory database engine formulating a query based upon the context data;
the in-memory database engine collecting the help information from one of a plurality of data sources based upon a query result and the linkage; and
the in-memory database engine causing the help information to be displayed on a second device having a second form factor different from the first form factor, the in-memory database engine referencing a registry storing the first form factor to cause the help information to be displayed on the different device, the registry further storing the context data indicating interaction only with existing workflows.

US Pat. No. 10,459,745

APPLICATION HELP FUNCTIONALITY INCLUDING SUGGESTED SEARCH

Business Objects Software...

1. A computer-implemented method comprising:an in-memory database engine receiving a first interaction between a first user device having a first form factor and a software application;
the in-memory database engine storing in an in-memory database remote from the first user device, context data of the first interaction, the context data comprising a linkage between a page and a room of a workflow, with another page and another room of a different step of the workflow;
the in-memory database engine processing the first interaction according to the context data to formulate a query;
the in-memory database engine expressing the query as a suggested question in a panel embedded in an interface of a second user device remote from the first user device and from the in-memory database;
the in-memory database engine posing the query to a plurality of data sources based on the linkage, in response to the user selecting the suggested question;
the in-memory database engine collecting help information from one of the plurality of data sources in response to the query;
the in-memory database engine storing the help information;
the in-memory database engine weighting the help information based upon data source provenance, wherein a first weight of an official help source is greater than a second weight of an unofficial help source which is greater than a third weight of a raw internet search result;
the in-memory database engine displaying the help information in the panel according to the weighting; and
the in-memory database engine causing the help information to be displayed on a different device having a second form factor different from the first form factor, the in-memory database engine referencing a registry storing the first form factor to cause the help information to be displayed on the different device, the registry further storing the context data indicating creation of a new workflow.