The present disclosure relates to systems and methods for information monitoring for contextually-relevant data.
Today’s electronic networks commonly contain more information than is possible for a user to efficiently search and assimilate. A user may utilize a search engine to look up information, but this may lead to frustration, as the user may not know the words to perform an optimal search, or may not know how to acquire the most relevant information. Furthermore, requiring the user to determine a query and type the query into a search engine may also take up unnecessary time, which may lead to further negative experiences.
The introduction provided herein is for the purpose of generally presenting the context of the disclosure. Unless otherwise indicated herein, the materials described in this section are not prior art to the claims in this application and are not admitted to be prior art, or suggestions of the prior art, by inclusion in this section.
According to an aspect of the disclosed subject matter, a method of managing information monitoring for contextually-relevant data includes: determining an interaction with an application interface displaying a plurality of data sources; determining a selection of one or more data of the plurality of data sources, wherein the selection is based on the interaction with the application interface; determining updates to the selection of one or more data of the plurality of data sources; aggregating the selection of one or more data into a data repository; and displaying the data repository.
According to another aspect, a method of managing information monitoring for contextually-relevant data includes: determining a plurality of subscription configuration settings of one or more data of a plurality of data sources with respect to a plurality of users, each subscription configuration setting being based on an interaction with an application interface by a respective user among the plurality of users; determining a plurality of groups of users among the plurality of users, each group of users being determined based on one or more attributes of each user of the group or respective subscription configuration settings of each user of the group; determining, for a targeted user among the plurality of users an affiliated group among the plurality of groups of users; and determining a recommended subscription configuration setting for the targeted user of one or more data of the plurality of data source based on the affiliated group.
According to another aspect, a method of managing information monitoring for contextually-relevant data includes determining an interaction with an application interface displaying a plurality of visualizations of a plurality of data sources; determining a selection of one or more visualizations of the plurality of visualizations, wherein the selection is based on the interaction with the application interface; generating a user experience based on the selected one or more visualizations; and receiving one or more subscription configuration settings of the one or more visualizations, each subscription configuration setting comprising at least one destination delivery address of a user to receive the user experience.
The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features and advantages of the invention will become apparent from the description, the drawings, and the claims.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate various exemplary embodiments and together with the description, serve to explain the principles of the disclosed embodiments.
Like reference numbers and designations in the various drawings indicate like elements.
The subject matter of the present description will now be described more fully hereinafter with reference to the accompanying drawings, which form a part thereof, and which show, by way of illustration, specific exemplary embodiments. An embodiment or implementation described herein as “exemplary” is not to be construed as preferred or advantageous, for example, over other embodiments or implementations; rather, it is intended to reflect or indicate that the embodiment(s) is/are “example” embodiment(s). Subject matter can be embodied in a variety of different forms and, therefore, covered or claimed subject matter is intended to be construed as not being limited to any exemplary embodiments set forth herein; exemplary embodiments are provided merely to be illustrative. Likewise, a reasonably broad scope for claimed or covered subject matter is intended. Among other things, for example, subject matter may be embodied as methods, devices, components, or systems. Accordingly, embodiments may, for example, take the form of hardware, software, firmware, or any combination thereof (other than software per se). The following detailed description is, therefore, not intended to be taken in a limiting sense.
Throughout the specification and claims, terms may have nuanced meanings suggested or implied in context beyond an explicitly stated meaning. Likewise, the phrase “in one embodiment” as used herein does not necessarily refer to the same embodiment and the phrase “in another embodiment” as used herein does not necessarily refer to a different embodiment. It is intended, for example, that claimed subject matter include combinations of exemplary embodiments in whole or in part.
The terminology used below may be interpreted in its broadest reasonable manner, even though it is being used in conjunction with a detailed description of certain specific examples of the present disclosure. Indeed, certain terms may even be emphasized below; however, any terminology intended to be interpreted in any restricted manner will be overtly and specifically defined as such in this Detailed Description section. Both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the features, as claimed.
In this disclosure, the term “based on” means “based at least in part on.” The singular forms “a,” “an,” and “the” include plural referents unless the context dictates otherwise. The term “exemplary” is used in the sense of “example” rather than “ideal.” The term “or” is meant to be inclusive and means either, any, several, or all of the listed items. The terms “comprises,” “comprising,” “includes,” “including,” or other variations thereof, are intended to cover a non-exclusive inclusion such that a process, method, or product that comprises a list of elements does not necessarily include only those elements, but may include other elements not expressly listed or inherent to such a process, method, article, or apparatus. Relative terms, such as, “substantially,” “approximately,” and “generally,” are used to indicate a possible variation of ±10% of a stated or understood value.
In the following description, embodiments will be described with reference to the accompany drawings. Various embodiments of the present disclosure relate generally to methods and systems for information monitoring for contextually-relevant data.
As described above, users searching or monitoring contextually-relevant information may be overwhelmed with the amount of information available and have difficulties monitoring the information. Contextually-relevant information may be made up of a plurality of data points. In many conventional systems, users may have to keep track of individual data points manually by looking up and/or searching for individual sources of the data points. Users may also have to create reminders or alerts to monitor the individual data points. For example, the users may set up a to-do list or a reminder email to search and monitor each individual data point at a frequency that is appropriate for the users.
A further challenge arises since the contextually-relevant information may be assembled from a plurality of data sources, including third party data sources, which may make the process slow and degrade the user experience.
The techniques discussed herein address these and other challenges by allowing data to be presented inline or otherwise associated with applications, and provide an efficient way for users to access the information, such as analytics data, in a user interface. By allowing a user to call up monitored contextually-relevant data within an existing user interface, the user no longer needs to switch applications or look through multiple data sources, thereby losing the context of the applications involved in the user’s current task. Additionally, techniques disclosed herein provide analysis of contextually-relevant data such that the contextually-relevant data may be supplemented with one or more visualizations, trends, predictions, summaries, and/or the like or a combination thereof.
Traditionally, if a user desires to look up and/or monitor information from an analytics platform or other database-backed platform, the user generally needs to switch applications or windows, log in, submit a query for the information desired, and wait for results to be returned. The delays, multiple steps required, and overall inconvenience often discourage users from looking up needed information.
By contrast, the techniques in the present application do not require the user to switch applications or interfaces, and contextually-relevant information is automatically provided in an interface, or overlapping/adjacent thereto, where the user needs the information. Such contextually-relevant information may be provided at user determined intervals, or may be provided when attributes of the contextually-relevant information meet a trigger threshold (e.g., a change in values, a rate of change, a trend, etc.) This automatic provision of contextually-relevant information provides information to just the right user, at the right time, at the user interface where the information is needed. Delays are minimal because the client device can receive contents of the information before the user indicates that the information should be displayed. Also, the user can call up the information with a single action on the existing interface, such as a mouse-over, hover, click, gaze, gesture, or tap on a term in the user interface. While the term “cursor” may be used herein, this term may also indicate points of user focus on the screen even though no visible cursor is present. For example, a user placing a finger on a touchscreen may indicate a point of user focus that may be called a cursor, even though a visible cursor might not be present.
The client device 105 may include an application 110 that enables the client device 105 to dynamically generate and display contextually-relevant information inline with, or adjacent to, the application 110 on an electronic display of the client device 105. As discussed below, the application 110 may allow the client device 105 to obtain and provide information from the database server 150 and the web server 155, even though the application 110, which may access a web page or app, may be controlled by third parties.
The client device 105 may be associated with a user 101, who may be a member of an organization, e.g., an employee of a company. The database server 150 may store database records stored by or for the user or the organization. The records might not be publicly available and may be subject to data access restrictions, such as requirements that users be issued credentials, for example from the organization, that grant authorization to access the records. Different users may be granted different levels of authorization, and the database server 150 may enforce access restrictions so that each user is only allowed to access the subsets of information the user is authorized to access. Techniques used herein may also accumulate data from publicly available databases for displaying contextually-relevant information.
In the environment 100, instead of incorporating additional content into the source of a document or application, information may be instead added, just in time, through the application 110, for example, a browser extension for a web browser, a subroutine of application 110, etc. This provides the flexibility for the system to selectively provide dynamically changing content from the database server 150 for any interface shown on the application 110, e.g., any web application or web page displayed by a web browser, any user interface displayed on the electronic display of the client device 105, etc.
In the example of
The application 110 may require the user 101 to authenticate and thus prove authorization to receive content from the database server 150. The authentication of the user 101 may also indicate to the application 110 and/or database server 150 the role of the user in the organization (e.g., software engineer, marketing technician, financial analyst, and so on) and the specific level of access authorization that has been, or will be, granted to the user 101 by the organization.
With the user logged in, the application 110 may access a set of data points, e.g., contextually-relevant data, that are relevant to the user 101 and/or the organization. The set of data points may be stored at the client device 105 or may be stored in the database server 150. The data points may also be stored in client storage 115, which may comprise non-volatile storage, and/or client memory 120, which may comprise volatile storage, where the client memory 120 may provide faster data access speeds than the client storage 115. In some implementations, the set of data points may be requested and received from the database server 150 each time the user 101 authenticates. The set of data points may represent analytics data stored in database server 150, for example, analytics data representing product sales amounts or inventory levels.
According to an implementation, the set of data points may be stored using a semantic architecture. The semantic architecture may allow access to trusted enterprise data and to quickly build reports and visualizations, blending data from multiple systems. The systems and components disclosed herein may use the semantic architecture to produce actionable intelligence from structured, unstructured, and semi-structured data warehouses, enterprise directories, and other enterprise data assets. The semantic architecture may allow logical business abstraction of enterprise data assets combined with an object-oriented architecture to facilitate object reusability, trusted governance, and user collaboration. The semantic architecture may further facilitate provision of governed, self-service analytics. The semantic architecture may be implemented by using a semantic layer that functions as an index of and/or on top of an organization’s enterprise data assets.
As applied herein, an author may generate the framework for application 110 such that application 110 can be customized for one or more clients (e.g., by a user creating a canvas). The author may determine the functionality and/or objects that can be used for a given client, such that application 110 can be generated based on the functionality and/or objects. An example functionality may be one or more insights. An insight may be generated based on a set of analytics capabilities that allow a client to analyze volumes of structured and unstructured data in its native format. An insight may be or may be based on a relationship (e.g., between multiple dimensions of data, such as data in a semantic architecture), a correspondence, a correlation, a trend, or the like or a combination thereof, and may be used to generate a dossier. As further discussed herein, insights based on selected data for monitoring and/or automatically identified datasets may be approved by authors for display via application 110.
As applied herein, one or more visualizations may be built and provided to a client (e.g., via client device 105). The one or more visualizations may be provided via application 110. A client may elect a subset of the one or more visualizations based on the insights approved by an author for a given application 110 or applicable dossier.
Techniques disclosed herein may allow users to identify key data in their respective applications (e.g., application 110), and elect to monitor the key data. A summary of changes and/or lack of changes may be provided to users during subsequent access to dossiers, after selection of the key data. Natural Language Generation (NLG) may be used to provide explanations of factors responsible for driving the change or lack of change in the data. The state of the data (e.g., changes, lack of changes, types of changes, etc.) may be delivered via a subscription. The subscription may include information about data and information about subscribed data and may be delivered via a central platform (e.g., a live model) and/or may be provided via an application (e.g., a messaging service, an email service, etc.).
One or more thresholds may be set such that a data property that changes by a threshold value may be flagged (e.g., included in a subscription delivery, via a live model page, via a message, via an email, via an application etc.). According, implementing this guided delivery of data updates across different data sets, via a central or applicable application, may augment user experience, reduce an amount of processing time required to access multiple data sets individually, and reduce resource use in presenting individual data sets or corresponding platforms to a user. Key data may be presented to a user in a centralized manner, in a subscription manner, and/or at a platform where the data is most useful (e.g., instead of the user accessing multiple platforms to access the same data).
As also further disclosed herein, an author (e.g., a dossier author) may be provided engine generated insights for one or more client application. The insights may be generated based on a combination of Artificial Intelligence (AI) analysis of the dimensions and/or trends as well as machine learning models. The machine learning models may be trained using supervised data, unsupervised data, and/or semi-supervised data to generate machine learning outputs that identify patterns in usage and/or data and generate insights based on the same. For example, for a given dataset or type of dataset (e.g., a type of dataset may be determined based on its attributes, metrics, dimensions, etc.), a machine learning or other output may indicate that approximately 85% of time when the given dataset or type of dataset is selected, users build three specific visualizations. Accordingly, the underlying logic behind those three specific visualizations may be generated into an insight and provided to the author for approval. The author may approve or reject generated insights, thereby governing insights offered to one or more clients. By governing the insights provided to clients, the insights may be curated. Approved insights may be deployed to the application users who may provide feedback (e.g., accept insight, reject insight, modify insight, etc.). The feedback may be provided to the author or may be input to a machine learning model. The author or machine learning output may be used to further tailor the insights based on the feedback.
According to another implementation, techniques and systems disclosed herein may identify common dimensions in datasets. The common dimensions may be used for analysis for any given dataset or combination of datasets. Datasets with common dimensions may be linked such that visualizations may be generated based on linked datasets for data analysis. Linked visualizations may be automatically generated when the linked datasets or other datasets with similar dimensions are used (e.g., selected) by a user. Auto-generated visualizations may be provided when authors connect to one of a linked dataset. Further, additional linked datasets may be imported automatically based on the selection of a first linked dataset. These techniques may improve processing time by reducing the number of datasets to be selected, reduce the time required create common analysis patterns, and also reduce the complexity in generating linked visualizations.
According to an implementation, upon detection of a common dimension and/or visualization pattern (e.g., by a machine learning model), a certified visualization may be created. The certified visualization may be formatted, themed, and/or grouped with other objects (e.g., as output by the machine learning model or determined by an author). Such objects may include, for example, attribute or metric selectors, in-canvas filters, panel stacks and more. Grouped objects may be designated as a certified authoring object with, for example, a name and description. A certified designation may be approved by an author and/or other administrator with credentials to authorize designating objects as certified. The certified authoring object may be available to any author in a given environment.
Certified objects may be added to an asset library accessible by one or more authors. Authors and/or clients may use the certified objects to create components such as visualizations, panel stacks, negations, or the like. The components may be used for multiple datasets such that use of certified objects by a client may harmonize the components used across the client’s datasets and/or dossiers.
The machine learning model may be trained to generate output one or more threshold values based on machine learning model training. The machine learning model training may be implemented using actual or simulated cohort data and/or past entity data. The cohort data and/or past entity data may include, for example, tags that may be used to train the machine learning model. The cohort data, past entity data, and/or tags may provide an indication of applicable threshold values based on events associated with the data. For example, the events may include an action taken or item viewed as a result of data meeting a certain value (e.g., a threshold value).
The subscription may include a scheduled summary communication of insights that may be of particular interest to a user.
Thresholds for determining which KPIs and/or insights are to be displayed in sections 1805, 1825, or 1845 may be selected or adjusted by a user. Initial thresholds may be set as system defaults, may be set or adjusted by an administrator or an owner of the KPI or insight, or may be determined by an artificial intelligence operation based on past KPI data, such as by a machine learning algorithm.
Although user insight summary email 1800 is depicted as being presented via an email application, other channels, such as social media channels, team workflow channels, text messaging channels, etc., may also be used. A schedule for delivering such a summary may be set by a user or by an administrator. Alternatively, sending of a summary email may be triggered according to user-specified triggers, such as, for example, ranges or thresholds for KPIs or KPI outliers, or may be determined by an artificial intelligence operation based on past KPI data, such as by a machine learning algorithm.
In addition to KPIs recommended to a user via a summary email, such as described with respect to
Application 110 may further track the watched KPIs and watching users based on attributes of the users, such as, for example, the role of the users, group membership of the users within an organization, security level of the users, seniority of the users, etc. Users determined to be watching KPIs in a similar way may be formed into groups of such users. Group membership of the users may further be determined based on, for example, use of the same or similar library applications. That is, application 110 may track the number of users watching a KPI, attributes of those users, and how the users are watching that KPI. Based on analysis, application 110 may determine that certain KPIs and or dossiers would be of interest to users with similar attributes. For example, application 110 may determine that a targeted user, such as a new user entering an organization, would be affiliated with one or more groups of users determined to be watching KPIs in a similar way. The determined KPIs/dossiers may then be recommended to additional users, such as, for example, a new user added to the system, a user changing roles or group membership, or other users matching the similar attributes but not currently watching the KPI/dossier. Recommendations may include all determined KPIs/dossiers, or the recommendations may be limited by other facts such as the security clearance of the new/additional user, the certification of the dossier, explicit exclusion of certain KPIs/dossiers by a user, author, or administrator, etc. When a new user enters the system, or a qualifying user attribute change occurs, the user may automatically receive a set of KPIs/dossiers that are determined to be of interest to the user.
In addition to KPIs/dossiers automatically recommended to users based on KPIs watched by other users, a user, acting as an author, may target dossiers or user experiences to specific users or groups of users. For example, the user may create a user experience based on a set of KPIs and designed visualizations. The created user experience may then be provided to the targeted group of users. The group of targeted users may be determined by the user authoring the created experience or may be recommended to the authoring user by application 110, such by any of the methods discussed above for determining recommended KPIs/dossiers for particular users. Alternatively, application 110 may automatically select the group of targeted users and provide the created user experience to the targeted users without any action by the authoring user. For example, the authoring user may target the created user experience to a “CxO” user group (i.e., the CEO, CFO, etc. of an organization). For example, application 110 may synchronize with an organization’s organizational structure to determine the membership of the targeted user group. The set of users receiving the created user experience may change over time as users performing the roles in the selected user group change. Application 110 may monitor membership of the targeted user group to update the users receiving the created user experience. For example, a new user entering the CFO role would begin receiving the created user experience based on their update membership in the “CxO” user group. Alternatively, the authoring user may target an ad hoc group of users based on the authoring user’s perceptions or understanding of each user’s interests or potential interests. Application 110 may then recommend additional users to receive the created user experience based on the roles, watched KPIs, subscriptions, or other user profile data of the targeted users and the recommended additional users. The group of users targeted to receive the created user experience may be updated based on the recommendation. Such an update may be performed manually, such as by the authoring user or an administrator, or may be performed automatically by application 110. The determination of whether such updates are performed automatically may be according to the policies or preferences of the organization.
According to an implementation of the disclosed subject matter, a central page may provide a live model of selected data and/or corresponding insights generated from the selected data. For example, a selection of one or more data of the plurality of available data may be received at 1402 of
A machine learning model or user may select all or a subset of available insights based on the selected data. The insights may, for example, correlate changes in the selected data, the causes for the changes, and/or the results associated with the changes. For example, an insight may correlate the increase in sales of a given widget at a first store, based on a threshold temperature change exhibited at the location of the store. The insight may further predict similar changes in sales of the given widget at the first store or one or more second stores based on the change at the first store.
A live model page may be provided to the user and may include multiple visualizations generated based on selected insights as well as one or more insights selected for different data. The live model page and its corresponding visualizations may be updated in real time or near real time, based on changes to the underlying data (e.g., to a semantic architecture). According to an implementation, one or more additional visualizations may be generated at the live model page, based on a change in data that results in a new or updated insight.
According to an implementation, insights may be generated based on datasets, historical application of data within datasets, dimensions of a dataset and one or more other datasets, or the like. The insights may be generated by an engine (e.g., using one or more machine learning models) based on one or more client datasets, combination of dimensions, one or more visualizations used by a user, or the like. Insights may be generated, for example, based on two or more datasets having the same dimensions or commonalities between data across the same dimensions. For example,
According to an implementation, an insight may be generated based on visualizations currently provided to a client or user. For example, a machine learning model may receive current visualizations as an input. The machine learning model may, based on the current visualizations, identify gaps in information (e.g., relationships (e.g., between multiple dimensions of data), correspondences, correlations, trends, etc.) that may be valuable to a client or user. The gaps and/or one or more dimensions may be applied to generate an insight. The insight may, for example, explain changes, relationships correspondences, correlations, trends, or the like for a dataset or a set of selected visualizations that bridge the gap between data presented to a user and data that may be missing but identified as useful.
According to an implementation of the disclosed subject matter, an AI platform may use, for example, one or more machine learning models to generate insights for author approval. The insights may be generated based on patterns identified by the one or more machine learning models. The patterns may identify, for example, relationships (e.g., between multiple dimensions of data), correspondences, correlations, trends, or the like or a combination thereof, which may be presented as insights. Weights and/or layers of the one or more machine learning models may be updated based on client feedback generated based on client interaction with data. Similarities or differences in data (e.g., attributes, metrics, dimensions) between multiple data sets may be used to identify and/or update the weights and/or layers as patterns are updated.
Insights may be generated based on metadata associated with datasets for a given client. The metadata may be output by a machine learning model that receives one or more datasets of the given client. For example, a client may have fifty production datasets associated with the client. The datasets may be provided to a machine learning model configured to output metadata from the fifty production datasets. The metadata may be extracted from the datasets based on, for examples, attributes, metrics, values, and/or tags associated with the datasets.
Commonalities and/or differences within the datasets or corresponding data may be used to identify insights. For example, datasets with the same or similar dimensions may be combined and analyzed in similar ways. The client may automatically receive access to author approved insights, and may generate or may be provided visualizations based on overlap or differences in the dimensions of one or more datasets. As further disclosed herein, insights may improve over time based on insight feedback provided to a machine learning model. Insight feedback may include the interaction, use, or modification of insights by users. The feedback may result in an increase, decrease, or updating of a given insight or category of insights.
Approved insights may be made available to one or more users associated with a client (e.g., for generation of visualizations via application 110). For example, a user may select data to be monitored (e.g., at 1402 of
A client machine learning model may receive, as inputs, client interaction with the approved insights. A client interaction may include, for example, use of a given insight (e.g., for visualization via application 110), rejection of an insight, and/or modification of an insight. The client machine learning model may output (e.g., to an author) recommendations to update the approved insights, based on the client interaction. As an example, an author may receive feedback (e.g., based on client interaction) that a given insight is declined by clients 80% of the times that it is made available. Accordingly, in subsequent iterations, the author may not approve the given insight. Alternatively, an authoring machine learning model may learn to prioritize, include, and/or remove insights based on the client feedback.
According to an implementation, NLG may be used to generate questions based on approved insights. For example, based on sales data across multiple stores, an insight may be generated for sales figures for a given widget at various store locations. The insight may correlate trends in store location, time, and sales of the widget. The insight may be provided to a client by converting the insight into one or more questions. For example, a client may be at an interface to review widget sales at a first store. The client may be provided a question, “How is this widget selling in other stores?” The client may select the question and, based on the selection, a visualization may be provided that extracts data from multiple stores at different times. The visualization may be provided to the client via application 110, in addition to the widget sales data the first store. Accordingly, the author may govern insights for use by the client, and the client may be elect to implement one or more insights via a NLG generated question.
According to an implementation, NLG may be used to present insights to users (e.g., via client device 105). NLG operations may convert an insight into a set of questions that can guide visualization generation. For example, a user may select a dataset and attributes to be displayed via a chart. The dataset may include sales data for a first location for a period of time. Based on the dataset and attributes, an approved insight that tracks similar sales data across multiple different stores may be trigger. Based on the insight, NLG may be used to generate a series of questions. For example, a first question may ask the user “Do you want to see sales data for this widget at other stores?” A second question may ask the user “Do you want to see sales data for this widget at this store at this time last year.” A third question may ask, “Do you want to see what other attributes correlate with changes to the sales data for this widget?” A user may select or interact with one or more of the questions and, based on the selection or interaction, additional visualizations may be created. Additionally, the selection or interaction may be used as feedback and may be provided to an author (e.g., via a machine learning model output). The feedback may inform future approvals of insights (e.g. if a given question nor insight is selected less than a threshold number of times, then it may not be used in the future).
According to an implementation of the disclosed subject matter, automated visualizations may be generated and presented to a client (e.g., via client device 105). The visualizations may be generated based on one or more of a selected dataset, historically selected datasets, data trends, or the like. According to an implementation, an author may determine that when a first visualization is selected, one or more additional visualizations should also be provided. The author may make the determination based on one or more insights and/or historical data indicating that, for example, users that select a first visualization often also select the one or more additional visualizations.
Alternatively, or in addition, one or more additional visualizations may be provided upon selection of a visualization. As an example, a first visualization for a given dataset may be selected for display (e.g. by a user). A machine learning model may receive the selection of the first visualization and may be trained to output one or more additional visualizations based on the selection of the first visualization. The one or more additional visualizations may be based on historical data that indicates that users that select the first visualization often select the one or more additional visualizations for display.
A certified object may be centrally updated (e.g., by an author of the certified object). Any updates to the certified object may be propagated across any uses of the certified object. For example, a user may create a canvas using a certified visualization that has a given axis range shown in a graph. The author of that certified visualization may update the certified object to update the axis range. Accordingly, upon subsequent populations of the canvas, the axis range for the graph may correspond to the updated axis range.
According to an implementation, a certified object may be prioritized over an auto-generated object (e.g., an object generated by artificial intelligence), thereby increasing consistency of design across client applications. Accordingly, for example, if a model recommends an automatically generated visualization, a determination whether a certified version of that visualization is available may be made. The determination may be made by, for example, comparing an automatically generated object to those of available certified objects. If a certified version is available, that certified version may be provided instead of a non-certified version.
According to an implementation, as shown in
One or more implementations disclosed herein may be implemented using a machine learning model 2150 of
The training data 2112 and a training algorithm 2120 may be provided to a training component 2130 that may apply the training data 2112 to training algorithm 2120 to generate a machine learning model. According to an implementation, training component 2130 may be provided comparison results 2116 that compare a previous output of the corresponding machine learning model to apply the previous result to retrain the machine learning model. Comparison results 2116 may be used by training component 2130 to update the corresponding machine learning model. Training algorithm 2120 may utilize machine learning networks and/or models including, but not limited to a deep learning network such as Deep Neural Networks (DNN), Convolutional Neural Networks (CNN), Fully Convolutional Networks (FCN) and Recurrent Neural Networks (RCN), probabilistic models such as Bayesian Networks and Graphical Models, and/or discriminative models such as Decision Forests and maximum margin methods, or the like. Training algorithm 2120 and/or the training disclosed in
A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the disclosure. For example, various forms of the flows shown above may be used, with steps re-ordered, added, or removed.
If programmable logic is used, such logic may be executed on a commercially available processing platform or a special purpose device. One of ordinary skill in the art may appreciate that embodiments of the disclosed subject matter can be practiced with various computer system configurations, including multi-core multiprocessor systems, minicomputers, mainframe computers, computers linked or clustered with distributed functions, as well as pervasive or miniature computers that may be embedded into virtually any device.
For instance, at least one processor device and a memory may be used to implement the above-described embodiments. A processor device may be a single processor or a plurality of processors, or combinations thereof. Processor devices may have one or more processor “cores.”
Various embodiments of the present disclosure, as described above in the examples of
As shown in
Device 2200 also may include a main memory 2240, for example, random access memory (RAM), and also may include a secondary memory 2230. Secondary memory 2230, e.g., a read-only memory (ROM), may be, for example, a hard disk drive or a removable storage drive. Such a removable storage drive may comprise, for example, a floppy disk drive, a magnetic tape drive, an optical disk drive, a flash memory, or the like. The removable storage drive in this example reads from and/or writes to a removable storage unit in a well-known manner. The removable storage unit may comprise a floppy disk, magnetic tape, optical disk, etc., which is read by and written to by the removable storage drive. As will be appreciated by persons skilled in the relevant art, such a removable storage unit generally includes a computer usable storage medium having stored therein computer software and/or data.
In alternative implementations, secondary memory 2230 may include other similar means for allowing computer programs or other instructions to be loaded into device 2200. Examples of such means may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM, or PROM) and associated socket, and other removable storage units and interfaces, which allow software and data to be transferred from a removable storage unit to device 2200.
Device 2200 also may include a communications interface (“COM”) 2260. Communications interface 2260 allows software and data to be transferred between device 2200 and external devices. Communications interface 2260 may include a modem, a network interface (such as an Ethernet card), a communications port, a PCMCIA slot and card, or the like. Software and data transferred via communications interface 2260 may be in the form of signals, which may be electronic, electromagnetic, optical, or other signals capable of being received by communications interface 2260. These signals may be provided to communications interface 2260 via a communications path of device 2200, which may be implemented using, for example, wire or cable, fiber optics, a phone line, a cellular phone link, an RF link or other communications channels.
The hardware elements, operating systems and programming languages of such equipment are conventional in nature, and it is presumed that those skilled in the art are adequately familiar therewith. Device 2200 also may include input and output ports 2250 to connect with input and output devices such as keyboards, mice, touchscreens, monitors, displays, etc. Of course, the various server functions may be implemented in a distributed fashion on a number of similar platforms, to distribute the processing load. Alternatively, the servers may be implemented by appropriate programming of one computer hardware platform.
It should be appreciated that in the above description of exemplary embodiments of the invention, various features of the invention are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure and aiding in the understanding of one or more of the various inventive aspects. This method of disclosure, however, is not to be interpreted as reflecting an intention that the claimed invention requires more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive aspects lie in less than all features of a single foregoing disclosed embodiment. Thus, the claims following the Detailed Description are hereby expressly incorporated into this Detailed Description, with each claim standing on its own as a separate embodiment of this invention.
Furthermore, while some embodiments described herein include some but not other features included in other embodiments, combinations of features of different embodiments are meant to be within the scope of the invention, and form different embodiments, as would be understood by those skilled in the art. For example, in the following claims, any of the claimed embodiments can be used in any combination.
Thus, while certain embodiments have been described, those skilled in the art will recognize that other and further modifications may be made thereto without departing from the spirit of the invention, and it is intended to claim all such changes and modifications as falling within the scope of the invention. For example, functionality may be added or deleted from the block diagrams and operations may be interchanged among functional blocks. Steps may be added or deleted to methods described within the scope of the present invention.
The above disclosed subject matter is to be considered illustrative, and not restrictive, and the appended claims are intended to cover all such modifications, enhancements, and other implementations, which fall within the true spirit and scope of the present disclosure. Thus, to the maximum extent allowed by law, the scope of the present disclosure is to be determined by the broadest permissible interpretation of the following claims and their equivalents, and shall not be restricted or limited by the foregoing detailed description. While various implementations of the disclosure have been described, it will be apparent to those of ordinary skill in the art that many more implementations and implementations are possible within the scope of the disclosure. Accordingly, the disclosure is not to be restricted except in light of the attached claims and their equivalents.
This application claims benefit to U.S. Provisional Patent Application No. 63/267,401, filed on Feb. 1, 2022, the entire contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
63267401 | Feb 2022 | US |