Embodiments generally relate to computer systems, and more particular to methods and systems to provide data visualization in a tile-based graphical user interface.
The reporting, analysis, and interpretation of business data is of central importance to an organization to support accurate and timely organization decisions and thus achieving its competitive edge and optimizing processes. For example, data analysts create and add data in a data repository on a daily basis. End-users with access to the data repository may search for certain data. However, analyzing relevant data in a large volume of data can be a challenge. Data visualization tools allow retrieving and visualizing desired data. However, these tools can be limited to a way in which the data is rendered. For example, these tools render a list of relevant documents (e.g., in a form of a table) for a query and the user may have to open a document to search for desired data. Opening each document in a large volume of documents to find desired data may not be an efficient and robust mechanism.
The claims set forth the embodiments with particularity. The embodiments are illustrated by way of examples and not by way of limitation in the figures of the accompanying drawings in which like references indicate similar elements. The embodiments, together with its advantages, may be best understood from the following detailed description taken in conjunction with the accompanying drawings.
Embodiments of techniques to provide data visualization in a tile-based graphical user interface are described herein. Reference throughout this specification to “one embodiment”, “this embodiment” and similar phrases, means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one of the one or more embodiments. Thus, the appearances of these phrases in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
The technologies described herein can be used for accessing data or information in a database platform or a data repository. Adoption of the technologies can provide efficient access to the data in both transactional (e.g., previously created data) and analytical scenarios (e.g., created new data or update existing data) while allowing both data analysts as well as end users (e.g., customers) the flexibility to efficiently access and manage the data.
As used herein, the term “data” can include analytics data, such as created analytics reports or other artifacts created by enterprise database suites (e.g., SAP®'s Crystal Reports, Lumira Datasets, WEBI reports, XCelcius reports and the like). The technologies can accommodate other, arbitrary data such as, but limited to spreadsheets and images.
As used herein, the term “assessing the repository” can include the connection established between a client device (e.g., an access terminal) and one or more database servers (i.e., data repositories) hosting at least one database. In this regard, the database connection may include information identifying a database (e.g., a server address and logon properties of a database), information identifying a subset of a database (e.g., fields, calculations, filters, groupings, or the like), information identifying a database query, and/or information identifying a data cube (e.g., identifying information may include a server address and a technical name of a cube). The database connections may be associated with one or more fields, which may be used to further distinguish and/or classify the data for a given database connection.
In this document, various methods, processes and procedures are detailed. Although particular steps may be described in a certain sequence, such sequence is mainly for convenience and clarity. A particular step may be repeated more than once, may occur before or after other steps (even if those steps are otherwise described in another sequence), and may occur in parallel with other steps. A second step is required to follow a first step when the first step is completed before the second step is begun. Such a situation will be specifically pointed out when not clear from the context. A particular step may be omitted; a particular step is required only when its omission would materially impact another step.
In this document, the terms “and”, “or” and “and/or” are used. Such terms are to be read as having the same meaning; that is, inclusively. For example, “A and B” may mean at least the following: “both A and B”, “only A”, “only B”, “at least both A and B.” As another example, “A or B” may mean at least the following: “only A”, “only B”, “both A and B”, “at least both A and B.” When an exclusive-or is intended, such will be specifically noted (e.g., “either A. or B”, “at most one of A and B”).
In this document, various computer-implemented methods, processes and procedures are described. It is to be understood that the various actions (receiving, storing, retrieving, displaying, etc.) are performed by a hardware device, even if the action may be authorized, initiated or triggered by a user, or even if the hardware device is controlled by a computer program, software, firmware, and the like. Further, it is to be understood that the hardware device is operating on data, even if the data may represent concepts or real-world objects, thus the explicit labeling as “data” as such is omitted. For example, when the hardware device is described as “storing a document”, it is to be understood that the hardware device is storing data that represents the document.
The computing system 100 includes a memory 130 and a processor 120 to execute instructions stored in the memory 130. The processor 120 or “CPU” is in electronic communication with a non-transitory computer-readable storage medium (e.g., memory 130) through a high speed memory bus, for instance. In one exemplary embodiment, the computer-readable storage medium is stored thereon code. Further, the code may be configured to reference data stored in a database of the non-transitory computer-readable storage medium, for example as may be present locally or in a remote database server. Software servers together may form a cluster or logical network of computer systems programmed with software programs that communicate with each other and work together in order to process requests. In one exemplary embodiment, the processor 120 may reside in the computing system 100. In another exemplary embodiment, the processor 120 may reside in other remote computing system.
The processor 120 executes the instructions stored in the memory 130 by accessing relevant data stored in data repository 160. In one embodiment, the memory 130 includes document listing module 140 and infographics ranking module 150, which can be modules of computer program instructions to provide data visualization in the tile-based GUI. Further, the GUI can be rendered through display unit 110.
The document listing module 140 and the infographics ranking module 150 may, depending upon the implementation, be part of a user device, an application, another application, a module of the server or another computer system. Additionally, it should be understood that the document listing module 140 and the infographics ranking module 150 can be implemented on another device rather than on the user device. For example, the document listing module 140 and the infographics ranking module 150 can be implemented on the user device such as a personal computer, tablet, cell phone or other mobile device, to provide data visualization in the tile-based GUI and then performs the various processes described below for generating and displaying the GUI The GUI provides an interface for a user to interact with the processor 120 with touch input and/or a keyboard. The behavior of the GUI may be governed by computer executable instructions that are executed when the user interacts with the GUI.
In one exemplary embodiment, the document is stored as an object in the data repository 160. The document can be a report (e.g., a business intelligence report), which includes multiple visualizations or infographics to understand and analyze the data. Further, the infographics of the document are extracted and stored in an information object corresponding to the object, in some examples, the infographics or visualization snapshots can include tables, graphs, histograms and/or any other visual representation of data associated with the document. Further, the information object stored in the data repository 160 is accessed for generation of data visualization.
The document listing module 140 of the computing system 100 executes data visualization software that identifies relevant documents from the data repository 160 based upon a query to retrieve certain data. In an exemplary embodiment, a user who provides a request to access the documents can include a data analyst of the organization or a department of the organization (e.g., warehouse) or an end user.
In one embodiment, infographics associated with each document identified by the document listing module 140 are retrieved. Further, the infographics associated with each document are ranked by the document ranking module 150. Based on the ranking, the infographics are displayed in a tile-based graphical user interface (GUI). Therefore by displaying infographics of the document, the data analyst or the end user may visualize or analyze the content of the document without opening the document.
In one embodiment, the file-based GUI may be used for concurrent access to multiple documents at a time on the computing system 100. For example, the display unit 110 of the computing system 100 displays multiple tiles and each tile represents a document by displaying associated infographics in an order based on the determined ranks.
In an exemplary embodiment, the documents, that are to be visualized, can be retrieved over a network from a data repository. Further, the documents are retrieved based upon a query to render relevant documents. For example, a user generates instructions or the query to retrieve the relevant documents for visualization and analysis in one embodiment, a user is provided an option to choose whether to visualize a list of relevant documents in the GUI or to visualize the data in the tile-based GUI.
A document listing module extracts a list of relevant documents from the data repository based upon the query. At 210, a document, from the list of relevant documents, to be rendered is retrieved at an infographics ranking module. The document can be a report, a dashboard or data visualizations such as a business intelligence (BI) report.
At 220, extract infographics from an information object associated with the document. In one exemplary embodiment, when the document is uploaded to the data repository, infographics or visualization snapshots of document are extracted and stored separately in the information object corresponding to the document. It is to be appreciated that the infographics are part of the information object, but not a part of document in the data repository. Therefore, it is not required to access the document to retrieve the infographics.
At 230, ranks for the infographics are determined based on attributes of the infographics and corresponding boosting factors (BF). For example, when the document includes hundreds of infographics or visualizations, ranks are determined for each infographics. Further, ranking is performed based on particular user context using attributes and corresponding BFs. The BFs are determined based on a number of attributes, Table 1 depicts the BFs corresponding to ten attributes associated with the document “sales analysis.”
In one exemplary embodiment, ranks for each infographics associated with the document “sales analysis” are determined using the BFs depicted in Table 1 and an equation depicted in Table 2.
At 240, the infographics are rendered in an order based on the determined ranks in a tile of the tile-based graphical user interface (GUI). In one embodiment, the tile based GUI includes a number of tiles and a tile is associated with a document. For example, when a list of ten relevant documents is extracted by a document listing module based on the request, ten tiles in the GUI are presented and each tile represents a document. Further, the tile displays the infographics associated with the document in the order based on the determined ranks. In one exemplary embodiment, the GUI for each document may be presented in a “tile view” or in a “full-screen view.” The user may switch between the GUI in the tile view and the GUI in full-screen view.
Therefore, the infographics associated with the document are stored separately in the information object and the document is visualized by rendering the infographics in the tile-based GUI based on the ranks of the infographics. Hence, the infographics are presented without opening the document and thus the performance involved in rendering relevant data and analyzing the data can be optimized.
In one exemplary embodiment, the document can include multiple visualizations to understand and analyze the data aimed at boosting performance by helping organization's executives and other end users to make more informed decisions. Further, the document may include data from internal sources and/or external sources. For example, the BI report includes historical information and new data gathered from source systems, enabling BI analysis to support both strategic and tactical decision-making processes.
At 320, the received document is stored as an object in the data repository. In one example context, the object represents a business object (BO). It is appreciated, however, that implementations of the present disclosure are applicable in other contexts.
At 330, infographics are retrieved from the received document. The information in the document may be presented in a variety of techniques and views, such as, but not limited to reports, tables, notes, graphs, and other views. In other words, the document includes multiple infographics or visualization snapshots representing the above mentioned contexts and such infographics are retrieved from the document.
At 340, the retrieved infographics are stored in an information object corresponding to the object in the data repository. Thereby the infographics are part of the information object corresponding to the object representing the document, but not a part of the object. Therefore, it is not required to open the document to obtain the infographics.
In one embodiment, the infographics in the information object are updated based on modification of the document. For example, when the document is refreshed and/or updated, the corresponding infographics in the information object will be updated accordingly. Further, when a new infographics is added to the document, the new infographics is added to the information object. When a particular infographic is deleted, then respective infographic also gets deleted from the information object. Therefore, the infographics in the information object are real time data.
Further, when a request to render the document “sales analysis” is received, ranks for the infographics (e.g., 410, 420, 430 and 440) are determined based on attributes and associated boosting factors (BF) as depicted in Table 1. In the example, the three infographics include one common attribute. The infographic “City wise Sale” 410 has three more unique attributes, other three visualizations has three common attributes. Second infographics “Delhi sales” 420 is a part of three stories and remaining infographics are part of one story. Further, the third infographics “Mumbai sales” 430 has a custom chart. The forth infographics “Bangalore sales” 440 is based on the geo chart.
Based on the BFs depicted in Table 1 and the equation depicted in Table 2, Table 3 depicts rank of the infographics “City wise sales” 410, Table 4 depicts rank of the infographics “Delhi sales” 420, Table 5 depicts rank of the in “Mumbai sales” 430 and Table 6 depicts rank of the infographics “Bangalore sales” 440 for a timestamp of five days ago.
In one exemplary embodiment, options are provided in the tile of the GUI to visualize subsequent and previous infographics based on the ranks of the infographics. For example, an option 510 is provided to visualize next ranked infographics. Accordingly, when the option 510 is selected, next ranked infographic “Mumbai sales” 430 is displayed as shown in
The infographics may include graphs, bar charts, pie charts, line charts, data tables, and so on associated with the documents. Further, infographics may include labels to inform the user as to the nature of the data that is being represented by the infographics and infographics may be annotated in addition to the labels to convey additional information about the data.
Some embodiments may include the above-described methods being written as one or more software components. These components, and the functionality associated with each, may be used by client, server, distributed, or peer computer systems. These components may be written in a computer language corresponding to one or more programming languages such as, functional, declarative, procedural, object-oriented, lower level languages and the like. They may be linked to other components via various application programming interfaces and then compiled into one complete application for a server or a client. Alternatively, the components maybe implemented in server and client applications. Further, these components may be linked together via various distributed programming protocols. Some example embodiments may include remote procedure calls being used to implement one or more of these components across a distributed programming environment. For example, a logic level may reside on a first computer system that is remotely located from a second computer system containing an interface level (e.g., a graphical user interface). These first and second computer systems can be configured in a server-client, peer-to-peer, or some other configuration. The clients can vary in complexity from mobile and handheld devices, to thin clients and on to thick clients or even other servers.
The above-illustrated software components are tangibly stored on a computer readable storage medium as instructions. The term “computer readable storage medium” should be taken to include a single medium or multiple media that stores one or more sets of instructions. The term “computer readable storage medium” should be taken to include any physical article that is capable of undergoing a set of physical changes to physically store, encode, or otherwise carry a set of instructions for execution by a computer system which causes the computer system to perform any of the methods or process steps described, represented, or illustrated herein. A computer readable storage medium may be a non-transitory computer readable storage medium. Examples of a non-transitory computer readable storage media include, but are not limited to: magnetic media, such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROMs, DVDs and holographic devices; magneto-optical media; and hardware devices that are specially configured to store and execute, such as application-specific integrated circuits (“ASICs”), programmable logic devices (“PLDs”) and ROM and RAM devices. Examples of computer readable instructions include machine code, such as produced by a compiler, and files containing higher-level code that are executed by a computer using an interpreter. For example, an embodiment may be implemented using Java, C++, or other object-oriented programming language and development tools. Another embodiment may be implemented in hard-wired circuitry in place of, or in combination with machine readable software instructions.
A data source is an information resource. Data sources include sources of data that enable data storage and retrieval. Data sources may include databases, such as, relational, transactional, hierarchical, multi-dimensional (e.g., OLAP), object oriented databases, and the like. Further data sources include tabular data (e.g., spreadsheets, delimited text files), data tagged with a markup language (e.g., XML data), transactional data, unstructured data (e.g., text files, screen scrapings), hierarchical data (e.g., data in a file system, XML data), files, a plurality of reports, and any other data source accessible through an established protocol, such as, Open Data Base Connectivity (ODBC), produced by an underlying software system (e.g., ERP system), and the like. Data sources may also include a data source where the data is not tangibly stored or otherwise ephemeral such as data streams, broadcast data, and the like. These data sources can include associated data foundations, semantic layers, management systems, security systems and so on.
In the above description, numerous specific details are set forth to provide a thorough understanding of embodiments. One skilled in the relevant art will recognize, however that the embodiments can be practiced without one or more of the specific details or with other methods, components, techniques, etc. In other instances, well-known operations or structures are not shown or described in details.
Although the processes illustrated and described herein include series of steps, it will be appreciated that the different embodiments are not limited by the illustrated ordering of steps, as some steps may occur in different orders, some concurrently with other steps apart from that shown and described herein. In addition, not all illustrated steps may be required to implement a methodology in accordance with the one or more embodiments. Moreover, it will be appreciated that the processes may be implemented in association with the apparatus and systems illustrated and described herein as well as in association with other systems not illustrated.
The above descriptions and illustrations of embodiments, including what is described in the Abstract, is not intended to be exhaustive or to limit the one or more embodiments to the precise forms disclosed. While specific embodiments of, and examples for, the embodiments are described herein for illustrative purposes, various equivalent modifications are possible within the scope of the embodiments, as those skilled in the relevant art will recognize. These modifications can be made in light of the above detailed description. Rather, the scope is to be determined by the following claims, which are to be interpreted in accordance with established doctrines of claim construction.