Some embodiments relate to a user interface. More specifically, some embodiments provide a user interface method and system for filtering data presented in the user interface.
A computer display may include a user interface to visually display information and data to a user. The information and/or data may be represented in the user interface by one or more user interface elements. The user interface elements may include text, tables, icons and other graphics, list, and other visual representations such as, for example, animations. The design and organization of a user interface may be configured or optimized to enhance the viewing of the data and other user interface elements therein. In some instances, an objective of user interface design may be to present data and other information in manner in which the displayed data and other information can communicate with a viewing user of the user interface. As an example, lists, tables, graphs, and charts may be utilized to present data in a user interface.
In some instances, the mere volume of data included and presented in a user interface may tend to obscure the data such that a viewer of the user interface may have difficulty in viewing, and more importantly, understanding the nature and characteristics of the presented data. In some environments, including business contexts, it may be crucial for a user to quickly and efficiently understand and recognize the meaning of, for example business data and how that data relates to, for example, a business entity or organization. In other instances, the data presented in the user interface is not exactly the type or scope of information that the user may need to in order to make an analysis or decision. For example, the presented data may include more than or less than the types of data the user needs for their understanding, analysis, and decision-making regarding the data presented in the user interface.
Accordingly, a method and mechanism for efficiently filtering data presented in a user interface based on a selection of data items in a user interface are provided by some embodiments herein.
A computer system, device, application, or service may be used to generate a query statement or function, execute the query statement against a collection of data, and display the result of executing the query statement or function. In some instances, the number of data items (i.e., quantity) in the result of the query execution may be more than a person or organization can efficiently analyze or even desire to analyze. For example, the data results presented in a user interface may tend to clutter to user interface. In some instances, the scope of the query result is either too narrow or too broad for a person, organization, or other entity's desires or needs. That is, the quality of the query result may not match the desires or needs of the person, organization, or entity for which the query result is provided.
Some embodiments herein are associated with systems and methods for providing query results filtered to meet a user's search expectations, whether related to quantity, quality, or other aspects of the scope of the query result.
In some instances, the scope of the initial set of data may not be exactly what the user desires. The scope of the initial data may depart from the user's expectations in terms of the number of data items and the focus (or lack of focus) of initial set of data. Thus, the user may want to further filter the initial set of data in an effort to obtain data items more compatible with the user's desires, needs, and expectations. In some instances, the user is able to discern the type and scope of data results they desire after viewing the initial set of data. For example, the user may view the initial set of data and quickly and efficiently recognize that some of the initial data is relevant to their needs.
At S110, a selection of a sub-set of the initial set of data is received from the user. The selected sub-set of the initial set of data will be used to derive a filter to screen the initial set of data.
In some embodiments, the sub-set of the initial set of data is selected or otherwise identified by a user directly marking, selecting, or choosing the sub-set of the initial data in the user interface. The user interface that provides a means or mechanism for presenting the initial set of data to the user may also be the mechanism through which the user indicates and selects the sub-set of the initial set of data. In some embodiments, the user need not navigate to a different screen or display panel of the user interface in order to make their selection(s) of the sub-set of data from the initial set of data. The user may select the sub-set of data directly from the user interface screen, panel, or window in which the initial set of data was presented. Furthermore, the user may not need to use a specific tool or command to indicate the sub-set of data. In accordance with embodiments herein, the user may indicate a sub-set of the initial set of data presented via the user interface by using a mouse, trackpad, trackball or other like devices associated with a graphical user interface. In some embodiments, the user may indicate the selection of the sub-set of the initial set of data by touching a touchscreen of touch user interface.
In some embodiments, it is noted that the user does not provide or enter text to indicate the selection of the sub-set of the initial set of data. In some embodiments, the user may select one or more data items from the initial set of data presented in the user interface. For example, in some instances a user may select the sub-set of the initial data by manipulating a cursor around various portions of a user interface display and highlighting or choosing specific portions of the user interface display. Even in an instance the user uses a keyboard or keypad associated with the user interface to move around the user interface, arrow keys of the keyboard or keypad may be used to manipulate the movement of a cursor or other user interface element, while text entry keys may not be used since the entry of text to indicate or make the selection of the sub-set of data is not supported in some embodiments. In this manner, the user does not enter any alpha-numeric characters or a string of characters in selecting the sub-set of the initial data. In some embodiments, the user may select various data items presented in the user interface, including text items, tabular items, icons, and other graphical elements. Accordingly, the selection process may eliminate the need for text entry, thereby reducing the need for a user to be concerned with such data entry and/or an opportunity for data entry mistakes common with such data entries.
At S115, process 100 proceeds to determine at least one query statement or function based on the indication of the selected sub-set of data received via the user interface. The query statement or function may be determined automatically by a system, subsystem, application, service, or program based on the sub-set of selected data in response to the selection of the sub-set of data items. In general, the query statement is a precise request for the retrieval of information from a database, system, or data store matching the parameters specified in the query statement. The query statement or function may include one or more query statements or functions or calls to a query process, service, or operation that may individually and collectively operate to implement a query or search function in accordance with embodiments herein. The parameters of the query statements, functions, processes, services, or operations may be derived from the selected sub-set of data. The terms and conditions of the query statements, functions, and other functional implementations to carry out the query may be based on the data items selected directly in the user interface by the user.
In some embodiments, the selected sub-set of data chosen from the initial data presented on or in the user interface may be of the type of data the user wants or desires included in a query result. Accordingly, the query statement or function determined based on the selected sub-set of data should provide results that include similar or the same types of data items. In some embodiments, the selected sub-set of data chosen from the initial data presented on the user interface may be of the type of data the user does not want to review or desires to have presented to them. Accordingly, the query statement or function determined based on this selected sub-set of data should provide results that do not include (i.e., exclude) the types of data items that are the similar or the same as the selected sub-set of data.
At S120, the query derived from the selected sub-set of data items is executed against a collection of data. In some embodiments, the query is executed against the initial set of data presented in the user interface. In general, the executing of the query may include matching, comparing, and grouping, in a variety of combinations, characteristics of the data items in the initial set of data as specified by the query statement. In this manner, execution of the query may operate to filter the initial data to provide a result that only includes data items similar to or the same as that in the selected sub-set or excludes data items like or the same as those in the selected sub-set of data items. In some embodiments, the query may be executed against a collection of data not limited to the initial set of data. For example, the collection of data pertinent to the user may have changed in an interim time period from an initial search that produced the initial data set. As such, the execution of the derived query is executed against an updated collection of data that is not the same as or limited to the initial data set.
The result of the query execution may be presented to the user in the user interface, in some embodiments. In some instances, the query result may be presented in one or more other user interfaces. In some embodiments, the user may further select data items from the query result for additional query statement and query function determinations such that further filtering of the result data may be accomplished, as facilitated by the user interface in accordance with embodiments herein.
At S215, a determination is made whether the user has completed the selecting of the data items to be included in the sub-set of data. In some embodiments, the conclusion of the selection process may be indicated by a predetermined lapse in time since the last selection of data items to include in the sub-set of data, an “end of selecting” notification provided or initiated by the user via the user interface, selecting a maximum number of data items (in some embodiments, there is no limit on the number of data items that may be selected), and other factors. If the selecting of sub-set data items is not complete, then the selected data items are at least temporarily stored and process 200 returns to a point before operation S210 to accommodate further selections. In the instance the selecting process is complete, then the process proceeds to operation S220.
At S220, a determination is made whether the query statement(s) or function(s) should include results similar to or the same as the selected sub-set data. In the instance the result of the query statement(s) and functions(s) should include like data items, then process 200 proceeds to operation S225 where the appropriate query statement(s) and functions(s) are determined and built based on the selected sub-set of data. In the instance the result of the query statement(s) and functions(s) should not include (i.e., exclude) data items like the selected sub-set of data, then process 200 proceeds to operation S230 from S220.
At S230, a determination is made whether the query statement(s) or function(s) should include results dissimilar to the selected sub-set data. In the instance the result of the query statement(s) and functions(s) should not include like data items, then process 200 proceeds to operation S235 where the appropriate query statement(s) and functions(s) are determined and built based on the selected sub-set of data such that data items similar to the selected sub-set of data are excluded from the query result. In the instance the result of the query statement(s) and functions(s) should not exclude data items like the selected sub-set of data as determined at S230, then process 200 proceeds to operation S240 from S230 where the query is executed and the result is presented to the user via the user interface.
In accordance with process 200 and some other embodiments, a query statement or function may be derived from an indication of a selection of a sub-set of initial data presented in a user interface, where the query statement may include filter functions to include data items similar to the selected sub-set, filter functions to exclude items similar to the selected sub-set, and combinations thereof.
In some embodiments, process 200 may be traversed one or more times by a user, in order to refine the results obtained by the user. In some aspects, process 200 may be traversed multiple times as a user further refines the results based on the selection of sub-sets of previous search results. In some regards, the user may be able to efficiently obtain relevant search results by recursive filters implemented by the methods herein. As illustrated, the user need not have knowledge of query statements and structures in order to obtain desired result since the user may operate or interact directly with results provided the user interface, in contrast to command lines and query language data structures.
Based on the selected sub-set of data items selected via user interface 300 in
In some embodiments, the query is executed by a system, device, service, application, or program. The system, device, service, application, or program that builds and executes the query may be distinct from the user interface 300 or in some embodiments, an associated aspect of such system, device, service, application, or program.
In some embodiments, filters implemented herein may be expressed in WHERE clauses of queries given in SQL or, as in the case of the pivot table example above, in MDX (Multidimensional Expressions query language). It is noted that embodiments herein are not restricted to these particular implementations.
In the example of
. . . AND DLVDOCID IN {22, 24, 25}
Also, an existing filter with regard to DLVDOCID would be removed to narrow the query results to the selected items.
The reverse operation, on the other hand, would just find out that Delivery Document IDs are part of the selection and therefore delete any existing restrictions for DLVDOCID. Note that if the original query already had a filter with regard to DLVDOCID, the reverse operation would not reestablish this filter. This way the result set may turn out even larger than with the original query.
It is further seen from the example of
As demonstrated by the example of
Client 410 may be associated with a Web browser to access services provided by business process platform 405 via HyperText Transport Protocol (HTTP) communication. For example, a user may manipulate a user interface of client 405 to select data items that indicate an instruction (e.g., “show me just this data”). Client 410, in response, may transmit a corresponding HTTP service request to the business service provider 405 as illustrated. A service-oriented architecture may conduct any processing required by the request (e.g., generating queries and executing the queries against a collection of data) and, after completing the processing, provides a response (e.g., search results) to client 410. Client 410 may comprise a Personal Computer (PC) or mobile device executing a Web client. Examples of a Web client include, but are not limited to, a Web browser, an execution engine (e.g., JAVA, Flash, Silverlight) to execute associated code in a Web browser, and/or a dedicated standalone application.
In some aspects,
All systems and processes discussed herein may be embodied in program code stored on one or more computer-readable media. Such media may include, for example, a floppy disk, a CD-ROM, a DVD-ROM, magnetic tape, and solid state Random Access Memory (RAM) or Read Only Memory (ROM) storage units. According to some embodiments, a memory storage unit may be associated with access patterns and may be independent from the device (e.g., magnetic, optoelectronic, semiconductor/solid-state, etc.) Moreover, in-memory technologies may be used such that databases, etc. may be completely operated in RAM memory at a processor. Embodiments are therefore not limited to any specific combination of hardware and software.
Client 410 may provide a user interface for presenting collections of data, such as search results, to a user and receive an indication of a selection of one or more of the data items presented in the user interface. In some embodiments, the data may be associated with data structures hosted by business service provider 405. The entry of a selection of data into a user interface of client 405 may, in some cases, be completely accomplished without entry of text by the user and without using additional tools or other screens. Instead, the entry of the user's selections of data items is made by the user directly manipulating the data presented in the user interface. For example, the user may highlight user interface data items using a mouse or other input pointing device (e.g., trackpad) to directly select a number of data items from a previous search result. The backend system, business service provider 405, may in turn use the selected data items to derive a query that returns a result including data items similar to the selected items, a result excluding data items similar to the selected items, and combinations thereof. The determination of the query and execution of same may be automatically performed without further input by the user. The result(s) of the query may be presented to the user in the user interface used to present the initial data to the user.
Accordingly, a method and mechanism for efficiently and automatically creating and executing a query based on a selection of data items selected via a user interface are provided by some embodiments herein.
Processor 505 communicates with a storage device 530. Storage device 530 may comprise any appropriate information storage device, including combinations of magnetic storage devices (e.g., a hard disk drive), optical storage devices, and/or semiconductor memory devices.
Storage device 530 stores a program 535 and/or user interface engine application 540 for controlling the processor 505 and query engine application 545 for determining, constructing, and executing queries. Processor 505 performs instructions of the programs 535, 540, 545 and thereby operates in accordance with any of the embodiments described herein. For example, processor 505 may create a user interface with support from user interface engine 540 to present search results and to receive a selection of one or more data items of the presented search results in a graphical user interface, wherein the selected data items are used to determine a query. Processor 505 may also automatically determine the query with the support of query engine application 545. Programs 535, 540, and 545 may be stored in a compressed, uncompiled and/or encrypted format. Programs 535, 540, and 545 may furthermore include other program elements, such as an operating system, a database management system, and/or device drivers used by the processor 505 to interface with peripheral devices.
In some embodiments (such as shown in
The following illustrates various additional embodiments and do not constitute a definition of all possible embodiments, and those skilled in the art will understand that the present invention is applicable to many other embodiments. Further, although the following embodiments are briefly described for clarity, those skilled in the art will understand how to make any changes, if necessary, to the above-described apparatus and methods to accommodate these and other embodiments and applications.
Although embodiments have been described with respect to web browser displays, note that embodiments may be associated with other types of user interface displays. For example, a user interface may be associated with a portable device such as a smart phone or Personal Digital Assistant (PDA), with a user interface element.
Embodiments have been described herein solely for the purpose of illustration. Persons skilled in the art will recognize from this description that embodiments are not limited to those described, but may be practiced with modifications and alterations limited only by the spirit and scope of the appended claims.