Data filtering equipment

By introducing multiple widgets and control rules into the data filtering device, the rapid and flexible filtering of data is achieved, the problem of time-consuming complex filtering arrangement in the prior art is solved, and the efficiency of data analysis and user experience are improved.

CN113168412BActive Publication Date: 2025-03-04KONINKLIJKE PHILIPS NV
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN201980076780.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2018-11-22
Filing Date
2019-11-18
Publication Date
2025-03-04
Estimated Expiration
2039-11-18

AI Technical Summary

Technical Problem

Existing dashboard technologies make the global role of filtering widgets time-consuming and impossible when analyzing large datasets, especially when datasets grow and analysis importance increases, these disadvantages are even more obvious.

Method used

An improved data filtering device is designed, including a data interface, memory and processor. The data is filtered and visualized by presenting multiple widgets on the display, where the widget of the filter type is selected according to the control rules and the filtering parameters of the selected filter widgets.

Benefits of technology

It realizes rapid filtering and visualization of data, reduces the need for screen space, and improves users' understanding and control of the data filtering mechanism, and can flexibly adjust the data filtering method according to the location of widgets and filter parameters.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113168412B_ABST
    Figure CN113168412B_ABST
Patent Text Reader

Abstract

Some embodiments are directed to a data filtering device, which is configured to select a widget for a visualization type and a control widget for a filtering type from a plurality of widgets, wherein the widgets are controlled according to a control rule, and the control rule depends on a widget position of the visualization type widget and a widget position of the filtering type widget.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The invention relates to a data filtering device, a data filtering method and a computer-readable medium. Background Art

[0002] Traditional dashboards, such as data displays, often interactive data displays, are constructed using components that visualize data. Such components are called widgets. Each widget can access a portion of the data. Widgets can present data in various ways, for example, through visuals or data tables. Dashboards may or may not be interactive.

[0003] The current dashboard can be interactive in various ways. For example, there may be widgets that the user can interact with and then act as filters. Such a filtering widget acts as a global filter. For example, a user can use a filtering widget to set a time range that indicates the data to be visualized by the visualization widget.

[0004] Existing dashboard technology has several problems when analyzing large data sets. For example, filter widgets act globally on the entire data display. Using existing technology, it is time-consuming or even impossible to make complex filter arrangements. As data sets grow and the importance of data analysis increases, these shortcomings are increasingly felt. A technical device that provides an improved way of filtering data for a data display is desired. Summary of the invention

[0005] It is desirable to have an improved data filtering device, wherein the device is configured so that filtering of data is improved. An improved data filtering device is proposed. The data filtering device comprises:

[0006] a data interface configured to retrieve data from a database,

[0007] a memory configured to store a plurality of widget codes corresponding to the plurality of widgets, the widget codes including widget positions indicating a display area for displaying the corresponding widget on a display, a filtering type widget having a widget code for acquiring filtering parameters, a visualization type widget having a widget code configured to visualize data on a display, and

[0008] A processor configured to present the plurality of widgets on a display, the presenting comprising, for a widget of a visualization type,

[0009] selecting a control widget of a filtering type from the plurality of widgets, wherein the widget is controlled according to a control rule, the control rule being dependent on the widget position of the widget of a visualization type and the widget position of the widget of a filtering type,

[0010] fetching data from the database, the data being filtered according to the filter parameters of the selected control widget,

[0011] The filtered data is visualized according to the widget code of the widget of a visualization type.

[0012] The data filtering method uses a filter widget to filter data visualized by a visualization widget. For example, the visualization widget can be a line chart, a bar chart, a pie chart, etc. For example, the filter widget can filter on one or more attributes of the data, for example, records with data at specific intervals, and so on. Interestingly, the control rule determines whether a specific filter widget affects a specific visualization widget based on the position of these widgets. Various control rules have been tried and are described in this article. As a result, the data filtering device provides fast feedback to the user to inform the user of the internal state of the machine, for example, how the data is filtered. In addition, if the control rule is so determined, a single filter may affect multiple visualization widgets. This means that less screen space is required, but the function of effectively conveying the machine state to the user is still achieved. The user can use this information to change the way the data is filtered by changing the position of the widget.

[0013] For example, the plurality of widgets may include a first widget of a visualization type, a second widget of a visualization type, and a third widget of a filtering type. The control rule depending on the widget position of the third widget allows the third widget to be selectively arranged as a control widget for the first widget instead of the second widget, or as a control widget for the second widget instead of the first widget.

[0014] Thus, by changing the position of the filter widget, the filtering of the data in the visualization widget is changed. Note that the opposite is also possible; changing the filtering of the data in the visualization widget by changing the position of the visualization widget relative to one or more filter widgets.

[0015] The data filtering device is an electronic device. For example, the data filtering device may be a computer. The computer may be connected to a display to display the data to the display. The data filtering device may be implemented in various other electronic devices, such as a television, a set-top box, a mobile phone, etc.

[0016] The data filtering apparatus and method described herein can be used in a wide range of practical applications, including analysis of various data, such as hospitalization data, financial data, data from manufacturing plants, etc.

[0017] Embodiments of the method may be implemented on a computer as a computer-implemented method, or may be implemented in dedicated hardware, or in a combination of the two. Executable code of embodiments of the method may be stored on a computer program product. Examples of computer program products include memory devices, optical storage devices, integrated circuits, servers, online software, etc. Preferably, the computer program product includes non-transient program code stored on a computer-readable medium for performing embodiments of the method when the program product is executed on a computer.

[0018] In one embodiment, the computer program comprises computer program code adapted to perform all or part of the steps of an embodiment of the method when the computer program is run on a computer.Preferably, the computer program is embodied on a computer readable medium.

[0019] Another aspect of the present invention provides a method for making a computer program available for download. This aspect will be used when the computer program is uploaded to, for example, Apple's App Store, Google's Play Store, or Microsoft's Windows Store and when the computer program can be downloaded from such stores. BRIEF DESCRIPTION OF THE DRAWINGS

[0020] Further details, aspects and embodiments of the invention will be described, by way of example only, with reference to the accompanying drawings. The elements in the drawings are shown for simplicity and clarity and are not necessarily drawn to scale. In the drawings, elements corresponding to elements already described may have the same reference numerals. In the drawings,

[0021] Figure 1a-1b schematically illustrates an example of an embodiment of a data filtering device,

[0022] Figure 2 schematically shows an example of embodiment of a data display,

[0023] Figure 3a schematically illustrates an example of an embodiment of a visualization widget code,

[0024] Figure 3b schematically illustrates an example of an embodiment of a filtering widget code,

[0025] Figure 4a schematically shows an example of embodiment of a data display,

[0026] Figure 4bschematically shows an example of embodiment of a data display,

[0027] Figure 5a An example of a tree data structure is shown schematically,

[0028] Figure 5b An example of a widget table is shown schematically,

[0029] Figure 6a-6e A screen shot showing an embodiment of a data filtering device,

[0030] Figure 7 schematically illustrates an example of an embodiment of a method of filtering data,

[0031] Figure 8a schematically shows a computer-readable medium having a writable portion comprising a computer program according to an embodiment,

[0032] Figure 8b A representation of a processor system according to one embodiment is schematically shown.

[0033] Figure 1a-5b List of reference numerals in the FIGURES:

[0034] 100 data filtering devices

[0035] 131 data interface

[0036] 132 Display Interface

[0037] 133 Database

[0038] 134 Display

[0039] 135 User input interface

[0040] 140 Memory

[0041] 150 processors

[0042] 141-142 Widget Code

[0043] 160 Presentation Units

[0044] 161 Iterator

[0045] 162 Selector

[0046] 163 Data Acquisition Unit

[0047] 164 Visualization Unit

[0048] 165 Another presentation section

[0049] 170 Input Units

[0050] 201 y-axis

[0051] 202 x-axis

[0052] 210 Data Display

[0053] 211, 214, 216 Visualization Widgets

[0054] 212, 213, 215 filter widgets

[0055] 241 Visualization Widget Code

[0056] 242, 252 Widget Position

[0057] 243, 253 Presentation data

[0058] 244, 254 executable code

[0059] 245 Data Binding

[0060] 251 Filter Widget Code

[0061] 255 filter parameters

[0062] F1-F6 Filter Widget

[0063] V1-V4 Visualization Widgets

[0064] 221-226 Widget Instructions

[0065] 231 upper left X coordinate

[0066] 232 Upper left Y coordinate

[0067] 233 X coordinate of the lower right

[0068] 234 Y coordinate of the lower right

[0069] 1000 Computer readable medium

[0070] 1010 Writable part

[0071] 1020 Computer Programs

[0072] 1100 devices

[0073] 1110 System Bus

[0074] 1120 processor

[0075] 1130 Memory

[0076] 1140 User Interface

[0077] 1150 communication interface

[0078] 1160 Storage Devices

[0079] 1161 Operating System

[0080] Instructions 1162, 1163, 1164 DETAILED DESCRIPTION

[0081] Although the present invention may be implemented in many different forms, one or more specific embodiments are shown in the drawings and will be described in detail herein, but it should be understood that this disclosure is considered as an example of the principles of the invention and is not intended to limit the invention to the specific embodiments shown and described.

[0082] Hereinafter, for the sake of understanding, the elements of the embodiments are described in operation. However, it will be apparent that the various elements are arranged to perform the functions described as being performed by them.

[0083] Furthermore, the invention is not limited to the embodiments, and the invention lies in each and every novel feature or combination of features described herein or recited in mutually different dependent claims.

[0084] Figure 1a Schematically, examples of embodiments of a data filtering device 100, a database 133, and a display 134 are shown. The database 133 may be external to the data filtering device 100 or internal to the data filtering device 100. In any case, the database 133 may be accessed via the data interface 131. The display 134 may be external to the data filtering device 100 or internal to the data filtering device 100. In any case, the display 134 may be accessed via the display interface 132. The data filtering device 100 may be configured to acquire data from the database 133, process the data, and display a visualization on a display (e.g., the display 134). The data may be digital data.

[0085] The data filtering device 100 may include a user input interface 135. For example, the user input interface 135 may include a touch screen, a mouse, etc. For example, the user input interface 135 may include a keyboard. A user of the data filtering device may use the user input interface 135 to change the data display. If the data display is not interactive, the user input interface 135 is optional.

[0086] The data interface may include a connector, such as a wired connector, such as an Ethernet connector, an optical connector, etc., or a wireless connector, such as an antenna, such as a Wi-Fi, 4G or 5G antenna. For example, the display interface may include a display connector, such as an HDMI, DisplayPort, etc. The data interface and / or the display interface may include a memory access port, a bus, etc.

[0087] The data filtering device 100 also includes a memory 140 and a processor 150. The memory 140 can be configured to store computer code, including widget code, for execution by the processor 150. For example, the computer code can include low-level computer code, such as machine instructions. For example, the computer code can include high-level computer code, such as rendering parameters. The high-level computer code can be executed by a corresponding execution code. The latter can be implemented in a lower-level code than the high-level code. The memory 140 can be an electronic memory. The processor 150 can be an electronic processor, such as one or more processor circuits, such as a microprocessor, etc.

[0088] For example, the rendering unit 160 may include a common code, which may be used to render a combination of the plurality of widgets, for example, according to rendering parameters in the widget, etc. The widget may extend the common code with a widget-specific executable code.

[0089] Execution of data filtering apparatus 100 is implemented in a processor circuit, examples of which are shown herein. Figure 1b Functional units are shown, which may be functional units of a processor circuit. For example, Figure 1b Can be used as a blueprint for the possible functional organization of a processor circuit. The processor circuit is not related to Figure 1b The units in are displayed separately. For example, Figure 1b The functional units shown in the drawings may be implemented in whole or in part in computer instructions stored in device 100 (e.g., stored in an electronic memory of device 100) and executable by a microprocessor of device 100. In hybrid embodiments, the functional units are implemented partly in hardware (e.g., as a coprocessor such as a graphics coprocessor) and partly in software stored and executed on device 100.

[0090] Figure 1b An example of an embodiment of the data filtering device 100 is schematically shown. For example, Figure 1b The device shown can be used in Figure 1a The device 100 shown is implemented on the device 100. The device 100 may include a data interface configured to retrieve data from a database, such as Figure 1a The data interface shown.

[0091] The device 100 includes a memory 140. The memory 140 may be configured to store a plurality of widget codes corresponding to a plurality of widgets. A widget is a visual element used in data visualization. A widget may be implemented by a widget code (e.g., a widget routine and corresponding widget data). A widget may also be implemented as a widget object, for example, by an object-oriented programming language. The widget code may include data affecting various aspects of the widget. In particular, the widget code includes a widget position. The widget position indicates a display area for displaying the corresponding widget on a display. There are a variety of methods for indicating a display area. For example, in one embodiment, the display area is rectangular. For example, a rectangular display area may be indicated by the coordinates of two diagonally opposite corners. For example, a rectangular display area may be indicated by the coordinates of one corner and the size information of a rectangle. Other shapes of the display area are also possible. For example, the display area may be circular or elliptical. In the latter case, the display area may be indicated by one or more centers and / or multiple radii, etc.

[0092] Typically, the display areas do not overlap. The data filtering method can enforce this, for example, by not allowing widgets to be moved or resized in cases where overlapping would be the case with moving widgets. Alternatively, the filtering device can generate an error message. However, it is also possible to let the widgets overlap and then let the user decide whether he accepts this.

[0093] Embodiments may use various types of widgets. Different types of widgets may share certain functions, but differ in other aspects. In one embodiment, at least two different types of widgets may be used: a filtering type widget, referred to as a filtering widget, and a visualization type widget, referred to as a visualization widget. These two types of widgets have many common functions. For example, both can be processed by a rendering code for presenting widgets on a screen. For example, two types of widget codes may include a widget position to indicate a position on a display screen. There may also be differences. For example, a filtering type widget may have a widget code for obtaining filtering parameters. A visualization type widget may have a widget code configured to visualize data on the display. The widget code may also store an indication of its widget type. Memory 140 displays widget code 141 and widget code 142. There may be more than two widget codes in memory 140.

[0094] Figure 3aAn example of an embodiment of a visualization widget code 241 is schematically shown. The visualization widget code 241 may include a widget position 242, rendering data 243, executable code 244, and data binding 245. The visualization widget code need not include all of these elements. For example, it may not include executable code 244, rendering data 243, etc.

[0095] Figure 3b An example of an embodiment of a filter widget code 251 is schematically shown. The filter widget code 251 may include a widget location 252, rendering data 253, executable code 254, and filter parameters 255. The filter widget code need not include all of these elements. For example, it may not include executable code 244, rendering data 253, etc.

[0096] return Figure 1b , the memory 140 may include multiple widget codes. In one embodiment, the multiple widget codes include at least one visualization widget code and at least one filtering widget code. In one embodiment, the multiple widget codes include multiple visualization widget codes and at least one filtering widget code. In one embodiment, the multiple widget codes include at least one visualization widget code and multiple filtering widget codes. The memory 140 may also include other types of widget codes, such as the metadata types described below, etc.

[0097] Figure 1b The device 100 may further include a rendering unit 160. The rendering unit 160 is configured to render a plurality of controls in a data display (e.g., a dashboard) on a display screen. For example, the rendering unit 160 may be configured to iterate over a plurality of widgets and execute corresponding rendering code for each of the widgets to render the widget on the display.

[0098] For example, the presentation unit 160 may include an iterator 161. The iterator 161 may be configured to iterate over a plurality of widgets. For example, the widgets may be indexed in a data structure. For example, the data structure may be a list. For example, the iterator may iterate over the list.

[0099] After iterator 161 has iterated over each widget, iterator 161 can then start again from the first widget, repeating the iteration. Preferably, however, iterator 161 pauses the presentation until a change occurs that requires an update of the presentation. For example, a user may change the data display, which may require an update of the presentation.

[0100] In one embodiment, the rendering unit 160 may include a selector 162, a data acquisition unit 163, and a visualization unit 164 for presenting widgets of a visualization type. For example, the rendering unit 160 may include an additional rendering portion 165 for presenting other types of widgets. In this example, the iterator 161 iterates over all widgets regardless of type; the iterator 161 is configured to execute the correct code, such as unit 162-164 or unit 165. However, in one embodiment, a separate iterator depending on the type may be used. For example, an embodiment may include a first iterator for iterating through visualization widgets and a second iterator for iterating through at least filtering widgets. The rendering portion 165 and the visualization unit 164 may present the widget at a display area of ​​the display corresponding to the widget position.

[0101] The data filtering device may include units for other functions, for example, as typically found on a data filtering device and / or a data display device or the like.

[0102] Interestingly, the way in which filter widgets affect visualization widgets depends on their relative position and / or size. A filter widget that has an effect on a particular visualization widget is called a controlling widget for that particular visualization widget. It is likely that a given filter widget is most likely to be a controlling widget for one visualization widget but not for another visualization widget. Whether a filter widget is a controlling widget is determined by a control rule. The control rule depends on the widget position, for example on the display area, their relative position and / or size. Various examples are given below.

[0103] The selector 162 is configured to select a control widget of a filtering type from a plurality of widgets. For example, the selector 162 may receive a visualization widget from the iterator 161 as input, and may be configured to select a control widget of a filtering type for the particular visualization widget. The selector 162 may be configured with a control rule. The control rule may take as input the widget position of a widget of the visualization type and the widget position of a widget of the filtering type, and produce as output whether the filtering widget is a control widget for the visualization widget. It may be the case that there is no control widget for one or any visualization widget. It may be the case that there are multiple control widgets for one or all visualization widgets.

[0104] The data acquisition unit 163 is configured to acquire data from the database 133. If there is no control widget, data can be acquired in a default manner (e.g., as set in the visualization widget). However, if there are one or more control filtering widgets, data can be acquired by filtering the data according to the filtering parameters of the selected control widget. For example, a first control widget may correspond to a filtering parameter indicating the age range of the test subject. In this case, the acquired data will be filtered according to the age range. For example, a second control widget may correspond to a filtering parameter indicating the gender of the test subject. In this case, the acquired data will be filtered according to gender. If both the first filtering widget and the second filtering widget are in control, data is acquired according to both the age and gender filters.

[0105] For example, a filter parameter may be a constraint, e.g., a constraint on the data presented by the visualization widget. For example, a constraint may be a constraint on an attribute of data, e.g., an element in a record of a database. For example, a constraint may be greater than, less than, equal to, between constraints, etc., which may be associated with an attribute, such as an attribute age, gender, etc. The filter parameter may also include a restriction of the constraint, e.g., a constraint that age is equal to 45, which may result in the data being constrained to those records containing an age attribute having a value of 45.

[0106] In one embodiment, a database record has multiple attributes or properties that can have values. The filtering parameters can include references to one or more attributes and constraints on them. The database query can then be restricted to such records. Note that some type of aggregation is usually also performed. For example, the visualization widget can be configured to display a time series or a number of records of a certain type, etc. The output of the visualization widget can also be changed as shown below.

[0107] The filter widget can also be used to manipulate the data, such as applying calculations thereto, such as adding or applying a particular prediction method. The visualization widget can apply a manipulation, such as a calculation or prediction method, represented, for example, as filter parameters or as filter executable code.

[0108] For example, the data acquisition unit 163 can be configured to arrange a database query, the database query including parameters obtained from the filter parameters of the control widget. For example, the data acquisition unit 163 can be configured with a template database query. For example, the visualization widget can be configured with a template database query; for example, the latter may exist in a data binding. For example, the template can be configured how to arrange the database query taking into account various filter parameters.

[0109] Finally, the filtered data is visualized in the visualization unit 164. The visualization unit 164 can use any data visualization known in the art. For example, the visualization unit 164 can be configured to present a gauge, a chart, a histogram, a bar chart, etc. The presented data is the data acquired by the data acquisition unit 163, possibly after further processing steps, such as bucketing, rounding, truncation, etc. For example, the data acquisition unit 163 can retrieve the number of test subjects with a specified age and gender in multiple different years. The visualization unit 164 can visualize the data in the form of a line graph or a bar graph, etc.

[0110] The semantic meaning of the filtering parameters is independent of the technical operation of the system. For example, an embodiment may filter on, say, energy consumption of electronic devices, rather than age or gender, etc. Likewise, the type of visualization may be adjusted as needed.

[0111] The presentation unit 160 may include an additional presentation portion 165 configured to present other widgets. For example, the additional presentation portion 165 may be configured to present a widget of a filtering type. Presenting a filtering widget may include displaying input parameters on a display for receiving filtering parameters from a user of the data filtering device.

[0112] The data filtering device 100 may include an input unit 170 to receive input from a user, for example, through the user input interface 135. For example, the user input 170 may receive input to set a filtering parameter. For example, the user input 170 may receive an age range, for example, from a keyboard, or may set an age or age range by interacting with a display, for example, by setting a knob, a slider, etc., for example, by touch or a mouse, etc. Figure 2 A drop-down menu is shown for this purpose. For example, user input 170 can receive input to move a widget or resize a widget. As described below, moving a widget or resizing a widget may change the widget being controlled. Input unit 170 can be configured to modify the widget code in memory 140 corresponding to the received input, such as by changing filtering parameters and widget positions.

[0113] return Figure 3a and 3b. The presentation of the widget may be affected by the widget position 242 and 252, which may, for example, set the display area, such as the position and size on the display. The presentation of the widget may be affected by the presentation data 243 and 253. The presentation data may select a presentation style, background, color, etc. The widget code may include executable code 244 and 254. The executable code provides great flexibility for the designer of the data display. The executable code may determine how to retrieve, process, filter, visualize, etc. the data. The data binding may include information about how to obtain the data. For example, the data binding may include a computer address, such as a URL. For example, the data binding may include a computer address of a database. For example, the data binding may include a database query or a database query template, etc. For example, a filtering parameter may be a parameter that can be used in a database query. The data binding may include a computer address, such as a network address, or a pointer, such as a time series, a database, etc.

[0114] For example, a visualization widget may include in its presentation data, for example, an indication of the type of graph, such as a bar graph or a line graph. This may be sufficient for the rendering unit to execute. On the other hand, a visualization widget may be encoded for a new type of data visualization, which may be achieved by encoding the new type of data visualization as executable code. In both cases, data such as time series may be filtered by filtering parameters.

[0115] Once the iterator 161 has rendered all widgets, the display may be kept static. However, if user input is received from the user input interface, for example, to change the position of the widget and / or the display area of ​​the widget according to the user input received at the user input interface, the affected widget may be rendered again. If the control relationship between the filter widget and the visualization widget is changed, the affected visualization widget may also be rendered again.

[0116] Figure 2 An example of an embodiment of a data display 210 is schematically shown. Visualization widgets 211, 214, 216 and filtering widgets 212, 213, 215 are shown. For ease of discussion, an x-axis 202 and a y-axis 201 are also shown. Coordinates increase in the direction of the arrows. Figure 2 A first example of a control law is illustrated.

[0117] According to this embodiment of the control rule, if the control rule determines that the x - coordinate of the display area of the first widget overlaps with the x - coordinate of the display area of the second widget, and the y - coordinate of the display area of the first widget is less than or equal to the y - coordinate of the display area of the second widget, the control rule will determine the filtering widget as the control widget of the visualization widget. Consider the filtering widget 215 and the visualization widget 216. The x - coordinate span of the filtering widget 215 is, for example, from 0 to 10; the x - coordinate span of the visualization widget 216 is also, for example, from 0 to 10. Thus, the x - coordinates overlap. The y - coordinate span of the widget 215 is from 10 to 15, while the y - coordinate span of the widget 216 is, for example, from 15 to 25. That is to say, all y - coordinates of the widget 216 are not lower than the y - coordinates of the widget 215.

[0118] For example, consider a coordinate span from a to b and a coordinate span from c to d; we assume that a < b and c < d. For example, if a < d and c < b, it can be said that the coordinate span from a to b overlaps with the coordinate span from c to d. However, a minimum overlap may be required. For example, it may be required that both (d - a) and (b - c) are greater than a positive threshold overlap value. The threshold overlap value can be selected according to the visual acuity of the human user on a given device. Additionally, it may be required that one coordinate span is contained within the other coordinate span. For example, it may be required that (a = c) or (d = b), which also means the spans overlap.

[0119] For example, if, for example, b <= c, the coordinate span from a to b can be said to be not higher than the coordinate span from c to d. For example, if, for example, d <= a, the coordinate span from a to b can be said to be not lower than the coordinate span from c to d.

[0120] For Figure 2 , a control rule can be adopted, that is, the x - coordinates must overlap and the y - coordinates must increase. Applying this rule means that the filtering widget 215 is controlling the visualization widget 216, rather than the visualization widgets 211 and 214; the filtering widgets 212 and 213 are controlling the visualization widget 214, rather than the visualization widgets 216 and 211. There is no control widget for the visualization widget 211. In one embodiment, a visualization widget can also control another visualization widget, otherwise following the same control rule. Applying this modification will imply that the visualization widget 211 is controlling the visualization widgets 216 and 214. One way this can be useful is to pass data binding. For example, the visualization widget 211 can be programmed to have data binding. This data binding is passed to the visualization widgets 216 and 214. However, since the latter two visualization widgets have different controlling filtering widgets, they can be filtered in different ways.

[0121] For example, the selector 162 may be configured to select a control widget of a specific type from a plurality of widgets. The specific type may be selected from a group including at least filtering and visualization types. The widget is being controlled according to a control rule. The data acquisition unit 163 may be configured to acquire data from a database filtered according to a filtering parameter and / or according to a data binding of the selected control widget.

[0122] If two or more control widgets contradict each other, e.g. have incompatible filter parameters or data bindings, etc., resolution rules may be used, e.g. selecting the filter parameters or data binding that is closest to the visualization widget being rendered. Alternatively, an error message may be displayed, etc.

[0123] exist Figure 2 In the example shown, the control works downward on the screen. Alternatively, it may be required to decrease the y coordinate so that the control works upward. The ruler may be rotated 90 degrees to make the control work left or right. In yet another variation, the control may work in both ways (e.g., up and down, etc.), for example by removing the condition of the increase / decrease of the coordinate from the control rule.

[0124] Figure 2 The control rules in make it easy for the user to determine from the display which filters apply to which visualization. Furthermore, filter widgets can be applied to different visualization widgets by moving the filter widget or by changing its size. These operations can be performed using conventional input modalities such as a touch screen or a mouse, for example, to drag and drop the widget or resize the widget.

[0125] Figure 4a An example of an embodiment of a data display is schematically shown, for example a dashboard with visualization widgets V1 - V4 and filtering widgets F1 - F6 .

[0126] In the example shown in Figure 4, a control rule is used in which controls work to the right and downward. For example, under the following conditions, using the exemplary x-axis and y-axis, the control rule can determine that the first widget of the filtering type is the controlling widget of the second widget of the visualization type if:

[0127] The x-coordinate of the display area of ​​the first widget overlaps the x-coordinate of the display area of ​​the second widget, and the y-coordinate of the display area of ​​the first widget is not higher than the y-coordinate of the display area of ​​the second widget (i.e., the control works towards a higher y-coordinate),

[0128] And if:

[0129] The y coordinate of the display area of ​​the first widget overlaps with the y coordinate of the display area of ​​the second widget, and the x coordinate of the display area of ​​the first widget is not higher than the x coordinate of the display area of ​​the second widget.

[0130] In other words, the control works both to the right and downward. Applying this rule in the context of Figure 4 produces the following results:

[0131] F1, F2, F4 control V1

[0132] F3, F4 control V2

[0133] F1, F2, F5, F6 control V3

[0134] F3, F5, F6 control V4.

[0135] Figure 4b Shows the Figure 4a The same data is shown, except that the user has made some modifications. The user deleted the filter widget F3, for example, by clicking the recycle bin icon, etc.

[0136] Moved the filter widgets F2, F5 and F6, e.g. by dragging and dropping the side of the widget, and

[0137] The filter widgets F1 and F4 are resized, for example, by dragging a corner of the widget.

[0138] As a result, the controls for filtering widgets have changed. Figure 4b The same control rules apply:

[0139] F1, F4 control V1

[0140] F1, F2, F4 control V2

[0141] F1, F4, F5, F6 control V3

[0142] F1, F2, F4, F5, F6 control V4.

[0143] Note that in this example, the control rules also depend on the size of the display area for the widgets of the visualization type and the widgets of the filtering type. However, this is not required. For example, all widgets can have the same size. Also, note that in this display, the user can selectively arrange a filtering widget (e.g., widget F2) as a control widget for a different visualization widget; for example, moving widget F2 causes it to go from being a control widget for V1 (instead of V2) to being a control widget for V2 (instead of V1). This is in Figure 2 This can be seen in the example given.

[0144] By removing one or more of the filter widgets or visualization widgets, you can Figure 4a and 4b Many other examples can be generated. For example, Figure 4a Remove widgets F3, V2 and V4 from the display to obtain another exemplary data display.

[0145] The relationships between widgets can be represented using one or more trees. Figure 5a Schematically shown as Figure 2 An example of a tree data structure 220 created for a data display. For example, the data filtering device 100, such as the selector 162, can be configured to generate and / or use the tree data structure 220 to determine which widgets are being controlled. For example, the device can be configured to iterate through multiple widgets to build a tree data structure indicating the controlling widgets. For example, the widgets can be iterated from top to bottom and from left to right while building the tree. Tree nodes 221-226 correspond to widgets 211-216. In the tree, if two nodes are directly adjacent, an edge is drawn between them. Once a tree is obtained, it can be used to obtain the controlling widget. For example, in order to obtain the controlling widget of the visualization widget 214, follow from node 224 to the root of the tree. Therefore, nodes 221, 223, and 222 corresponding to the filtering widgets 213 and 212 and optionally the visualization widget 211 are obtained.

[0146] Figure 5b Schematically shown as Figure 2 An example of a widget table created by the Data Display. These columns show the coordinates of widgets 211-216

[0147] 231 upper left X coordinate

[0148] 232 Upper left Y coordinate

[0149] 233 Lower right X coordinate

[0150] 234 lower right Y coordinate

[0151] For example, the table may be stored in a memory. For example, iterator 161 may be configured to iterate through a first column. For each visualization widget, selector 162 may be configured to also iterate through the first column, except for the current widget selected by iterator 161. Selector 162 may then apply control rules to the widget position information, in this case the coordinates of the relative corners. For example, during an iteration, iterator 161 may select the row of widget 216. Selector 161 may then proceed through the first column again and consider, for example, row 212. Selector 162 may then determine that the spans of the x-coordinates do not overlap, and therefore there is no control relationship even though the y-coordinates do increase. The widget table approach may also be applied to other control rules, for example, Figure 4a The control rules used in

[0152] Various embodiments disclose an interaction principle that allows widgets to be context-aware. Following control rules, interactions with one widget have an impact on other widgets. The data on which a widget operates is determined by the location of other widgets.

[0153] In traditional dashboards, it is easy for users to get confused, especially when interacting with complex dashboards. It is unclear how changes in one dashboard widget affect other data visualization widgets. It is difficult to determine how the actions of your application modify the actual screen being represented. However, in embodiments, users can create very advanced dashboards and still quickly glance at how to filter data.

[0154] In one embodiment, dashboards can be created on a visual grid. In one embodiment, a visualization widget can change appearance based on its size. For example, the more physical pixel space given, the more data detail will be displayed. The size of the visualization widget can be determined by the filter widget. This Figure 6a-6e Shown in.

[0155] Figure 6a-6e Screen shots showing an embodiment of the data filtering device. The screen shots were taken from a prototype using data produced for an experiment. The produced data was related to hospitalizations, but the subject of the data was irrelevant. The control rules are similar to Figure 4a and 4b Same, for example, right and down work. The prototype was programmed using the JavaScript React library.

[0156] Figure 6a shows a visualization widget placed on a grid. Figure 6b , a filter widget is added on top of the visualization widget. Note that Figure 6b (no grid) is displayed in operation, while Figure 6a Displayed in configuration (with grid). Figure 6c , a widget with metadata is added. In this case, Figure 6c The metadata widget at the top shows the title. A widget with a metadata type (such as title) does not affect any other widgets in the data display. Figure 6c In this case, the filter widget sets the number of "results" displayed. In response, the visualization widget expands its own display area and displays more results. In this particular example, the displayed results increase from "mortality" to "mortality rate", "length of stay", "readmission rate", and "complications" only.

[0157] exist Figure 6d , another visualization widget has been added to the left of the visualization widget. The left filter widget has also been expanded, with the result that the visualization widget further expands the displayed details. In this particular example, the left filter widget is changed from "Overview Top 1" to "Overview Top 8", e.g. the filter parameter is increased from 1 to 8. As a result, the visualization widget displays an expanded overview, e.g. from Top 1 to Top 8. For example, the first column increases from "Gynecologic Surgery" to "Gynecologic Surgery", "Neurology", "Gynecologic Surgery", "Alcohol and Drug Abuse", "Thoracic Surgery", "Ophthalmology: Surgery", "Obstetrics and Gynecology", and "Oral Surgery". Figure 6d There are two more metadata widgets displayed on the left side of the . The top left widget is the Navigator widget. The widget below it shows the Legend, which explains what the colors in the display mean.

[0158] exist Figure 6e In this example, the same visualization as in the image above is repeated. Note that the Overview widget on the left applies to both visualizations, but the Results widget on the top applies only to the left visualization. Therefore, according to the default settings of the visualizations, the left visualization has multiple columns, while the right visualization has a single row. Additionally, a filter widget has been placed at the bottom left. The filter widget is labeled Time Range. In the widget, the user can set two dates. As a result, the data in both visualizations is filtered to the date range.

[0159] Figure 6a , 6dand 6e are screenshots taken while the device was in configuration mode. For example, a data filtering device may have a configuration mode and a use mode. In configuration mode, new widgets may be added to the data display. In use mode, the user may change the position and / or size of widgets, but may not change their number. In configuration mode, darker shading of the visualization widgets indicates where filtering widgets may be placed so that they have an effect on the visualization widgets. The data display may be exported after completion so that it can no longer be switched to configuration mode.

[0160] In various embodiments of the data filtering device, a communication interface, such as selected from a variety of alternatives, may be included. For example, the interface may be a network interface to a local area network or a wide area network such as the Internet, a storage interface to an internal or external data storage device, a keyboard, an application program interface (API), etc.

[0161] The data filtering device may have a user interface, which may include well-known elements such as one or more buttons, a keyboard, a display, a touch screen, etc. The user interface may be arranged to accommodate user interaction to perform movement, resizing, and the like.

[0162] The data display may include a storage device, which may be implemented as an electronic memory, such as a flash memory, or a magnetic memory, such as a hard disk, or an optical memory, such as a DVD. The storage device may include a plurality of discrete memories that together constitute the storage device. The storage device may include a temporary memory, such as a RAM. The storage device may be used to implement the database 133 and / or the memory 140, etc.

[0163] Typically, a data filtering device, such as data filtering device 100, or Figure 2-6e Any of the data filtering devices shown may include a microprocessor that executes appropriate software stored on the data filtering device. For example, the software may have been downloaded and / or stored in a corresponding memory, for example, a volatile memory such as RAM or a non-volatile memory such as flash memory. Alternatively, the data filtering device may be implemented in whole or in part in programmable logic, for example, as a field programmable gate array (FPGA). The data filtering device may be implemented in whole or in part as a so-called application specific integrated circuit (ASIC), for example, an integrated circuit (IC) customized for its specific use. For example, the circuit may be implemented in CMOS, for example, using a hardware description language such as Verilog, VHDL, etc.

[0164] In one embodiment, the data filtering device may include a memory circuit, a presentation circuit, an iterator circuit, a selector circuit, a data acquisition circuit, a visualization circuit, another presentation circuit, and an input circuit. The circuit implements the corresponding units described herein. The circuit may be a processor circuit and a storage circuit, and the processor circuit executes instructions electronically represented in the storage circuit.

[0165] The processor circuit may be implemented in a distributed manner, for example, as a plurality of sub-processor circuits. The storage device may be distributed across a plurality of distributed sub-storage devices. Some or all of the memory may be electronic memory, magnetic memory, etc. For example, the storage device may have volatile and non-volatile portions. Portions of the storage device may be read-only.

[0166] The data filtering device provides a technical means for generating data displays (especially interactive data displays). For example, iterators, selectors, and data getters can collaborate to process data, such as data in a database, display it in a data display, and / or process modifications to the data display. The data filtering device can serve users with data analysis intentions because the configuration of filters can be completed more quickly using less screen space. In addition, since users can quickly determine which filter widgets affect which visualization widgets, troubleshooting configuration problems will become easier and faster. As described in this article, the use of control rules is helpful to users when interacting with the data filtering device because, for example, users can determine the internal configuration (which data is filtered and how it is filtered) from the data display. Moreover, since the user can continue to adjust the widgets on the display, guidance can continue to be provided to achieve the desired filtering effect.

[0167] The user's input can be reflected in an internal data structure, such as a widget tree or a table, e.g. Figure 5a and 5b As shown. Using the data structure, the data filtering device is configured to effectively determine which data queries need to be made to the database using appropriate filtering. The internal data structure can determine which filter parameters control which data retrieval and visualization. Such internal data structures are neither visible nor understandable to the user. However, in one embodiment, the dependencies between various widgets are effectively communicated to the user.

[0168] For example, users can determine at a glance Figure 4a The filter widget F2 in the visualization widgets V1 and V3 applies, but in Figure 4b This is applicable to both Visualization Widget V2 and V4. Assuming the user wants the latter, then Figure 4aThe information displayed to him in will enable him to determine that the filter widget F2 is not applied to the correct visualization widget. Furthermore, he can quickly correct the situation, for example, until he has Figure 4b The desired effect shown is achieved. Therefore, the data filtering device has improved filtering. The data filtering device enables a user to perform the technical task of interactively setting and configuring filters for data query operations.

[0169] Data displays according to embodiments have the advantage of using less screen space. For example, a given filter widget may apply to multiple visualization widgets, but need only be displayed once on the display. For example, all visualization widgets displayed below a particular filter widget may all apply the same filter. In addition, by only displaying the filter widget once for multiple visualization widgets, it is also avoided that the filter widget may inadvertently have different values ​​for different visualization widgets.

[0170] The following clauses are not claims but include contemplated embodiments. The applicants hereby give notice that new claims may be formulated during the prosecution of the present application or of any further application derived therefrom to such clauses and / or combinations of such clauses and / or features derived from the description or claims.

[0171] Clause 1: A data filtering device comprising:

[0172] a data interface configured to retrieve data from a database,

[0173] a memory configured to store a plurality of widget codes corresponding to a plurality of widgets, the widget codes including widget positions indicating a display area for displaying the corresponding widget on a display, a filtering type widget having a widget code for acquiring filtering parameters, a visualization type widget having a widget code configured to visualize data on a display, and

[0174] A processor configured to present the plurality of widgets on the display, the presenting comprising, for a widget of a visualization type,

[0175] selecting a control widget of a filtering type from the plurality of widgets, wherein the widget is controlled according to a control rule, the control rule being dependent on the widget position of the widget of a visualization type and the widget position of the widget of a filtering type,

[0176] fetching data from the database, the data being filtered according to the filtering parameters of the selected control widget,

[0177] Visualize the filtered data according to the widget code of the visualization type widget,

[0178] Clause 2: A data filtering device according to any one of the preceding clauses, the data filtering device comprising a user input interface for receiving user input from a user input device, the processor being configured to:

[0179] According to the user input received at the user input interface, the widget position and / or the display area of ​​the widget is changed,

[0180] presenting the widget according to the changed widget position,

[0181] Due to the changed widget position, the rendering is repeated at least for widgets having a different visualization type controlling the widget.

[0182] Figure 7 An example of an embodiment of a method 400 for filtering data is schematically shown. The method 400 may include

[0183] providing (410) a connection to a database to retrieve data,

[0184] storing (420) a plurality of widget codes corresponding to the plurality of widgets, the widget codes including widget positions, the widget codes indicating a display area for displaying the corresponding widget on a display, a filtering type widget having a widget code for obtaining filtering parameters, a visualization type widget having a widget code configured to visualize data on a display,

[0185] A plurality of widgets are presented (430) on a display.

[0186] Rendering 430 may include, for a visualization type widget,

[0187] selecting (440) a control widget of a filtering type from a plurality of widgets, wherein the widget is controlled according to a control rule, the control rule being dependent on the widget position of the widget of a visualization type and the widget position of the widget of a filtering type,

[0188] fetching (450) data from the database, the data having been filtered according to filtering parameters of the control widget,

[0189] The filtered data is visualized ( 460 ) according to the widget code of the widget of the visualization type.

[0190] As will be apparent to those skilled in the art, many different ways of performing the method are possible. For example, the steps may be performed in the order shown, but the order of the steps may also be changed, or one or more steps may be performed in parallel. In addition, other method steps may be inserted between the steps. The inserted steps may represent improvements to the method described herein, or may be unrelated to the method. For example, steps 440, 450, and 460 may be performed at least partially in parallel. In addition, a given step may not be fully completed before starting the next step.

[0191] Embodiments of the method may be performed using software, the software comprising instructions for causing a processor system to perform method 400. The software may include only those steps taken by a specific sub-entity of the system. The software may be stored in a suitable storage medium, such as a hard disk, a floppy disk, a memory, an optical disk, etc. The software may be sent as a signal along a line, wirelessly, or using a data network (e.g., the Internet). The software may be made available for download and / or remote use on a server. An embodiment of the method may be performed using a bitstream arranged to configure programmable logic (e.g., a field programmable gate array (FPGA)) to perform the method.

[0192] It should be understood that the present invention also extends to a computer program suitable for putting the present invention into practice, in particular a computer program on or in a carrier. The program may be in the form of a source code, an object code, a code intermediate between source code and object code, such as a partially compiled form, or any other form suitable for use in the implementation of an embodiment of the method. An embodiment related to a computer program product comprises computer executable instructions corresponding to each processing step of at least one of the methods described. These instructions may be subdivided into subroutines and / or stored in one or more files that may be statically or dynamically linked. Another embodiment related to a computer program product comprises computer executable instructions corresponding to each device of at least one of the systems and / or products described.

[0193] Figure 8aA computer readable medium 1000 having a writable portion 1010 including a computer program 1020 is shown according to an embodiment, the computer program 1020 comprising instructions for causing a processor system to perform a data display method. The computer program 1020 may be embodied on the computer readable medium 1000 as a physical mark or by means of magnetization of the computer readable medium 1000. However, any other suitable embodiments are also conceivable. In addition, it will be understood that although the computer readable medium 1000 is shown here as an optical disk, the computer readable medium 1000 may be any suitable computer readable medium, such as a hard disk, a solid state memory, a flash memory, etc., and may be non-recordable or recordable. The computer program 1020 comprises instructions for causing a processor system to perform the data display method.

[0194] Figure 8b An exemplary hardware diagram 1100 for implementing a data filtering device according to an embodiment is shown. The exemplary hardware 1100 may correspond to one or more of the data filtering devices shown with respect to FIGS. 1-7.

[0195] As shown, device 1100 includes a processor 1120, memory 1130, user interface 1140, communication interface 1150, and storage device 1160 interconnected via one or more system buses 1110. It should be appreciated that the diagram constitutes an abstraction in some respects and that the actual organization of components of device 1100 may be more complex than shown.

[0196] Processor 1120 may be any hardware device capable of executing instructions stored in memory 1130 or storage device 1160 or otherwise processing data. Thus, the processor may include a microprocessor, a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), or other similar device. For example, the processor may be an Intel Core i7 processor, an ARM Cortex-R8, etc. In one embodiment, the processor may be an ARM Cortex M0.

[0197] The memory 1130 may include various memories, such as L1, L2 or L3 cache or system memory. Thus, the memory 1130 may include static random access memory (SRAM), dynamic RAM (DRAM), flash memory, read-only memory (ROM), or other similar memory devices. It is apparent that in embodiments where the processor includes one or more ASICs (or other processing devices) that implement one or more functions described herein in hardware, software described in other embodiments as corresponding to such functions may be omitted.

[0198] The user interface 1140 may include one or more devices for enabling communication with a user such as an administrator. For example, the user interface 1140 may include a display, a mouse, and a keyboard for receiving user commands. In some embodiments, the user interface 1140 may include a command line interface or a graphical user interface that may be presented to a remote terminal via the communication interface 1150.

[0199] The communication interface 1150 may include one or more devices for communicating with other hardware devices. For example, the communication interface 1150 may include a network interface card (NIC) configured to communicate according to the Ethernet protocol. For example, the communication interface 1150 may include an antenna, a connector, or both, etc. In addition, the communication interface 1150 may implement a TCP / IP stack for communicating according to the TCP / IP protocol. Various alternative or additional hardware or configurations of the communication interface 1150 will be apparent.

[0200] The storage device 1160 may include one or more machine-readable storage media, such as a read-only memory (ROM), a random access memory (RAM), a disk storage medium, an optical storage medium, a flash memory device, or a similar storage medium. In various embodiments, the storage device 1160 may store instructions executed by the processor 1120, or data that the processor 1120 can run. For example, the storage device 1160 may store a basic operating system 1161 for controlling various basic operations of the hardware 1100. For example, the storage device may store instructions 1162 for a data retrieval device to select a second index in a second array, instructions 1163 for calculating a selection bit in a data-forgotten manner, and / or instructions 1164 to replace a second element at a second index in the second array, and the like. Alternatively, the storage device may store instructions 1162 for a data writing device to select a second index in a second array, instructions 1163 for calculating a selection bit in a data-forgotten manner, and / or instructions 1164 for replacing a first element at a first index in a first array, and the like. Alternatively, the storage device may store instructions 1162 for retrieving the verification device to receive the cryptographically verifiable computational proof and / or instructions 1163 for verifying the cryptographically verifiable computational proof. Alternatively, the storage device may store instructions 1162 for writing the verification device to receive the cryptographically verifiable computational proof and / or instructions 1163 for verifying the cryptographically verifiable computational proof.

[0201] It will be apparent that various information described as being stored in storage device 1160 may additionally or alternatively be stored in memory 1130. In this regard, memory 1130 may also be considered to constitute a "storage device," and storage device 1160 may be considered to be a "memory." Various other arrangements will be apparent. Furthermore, both memory 1130 and storage device 1160 may be considered to be "non-transitory machine-readable media." As used herein, the term "non-transitory" will be understood to exclude transient signals, but rather to include all forms of storage, including volatile and non-volatile memory.

[0202] Although the device 1100 is shown as including one of each described component, various components may be replicated in various embodiments. For example, the processor 1120 may include multiple microprocessors configured to independently perform the methods described herein, or configured to perform the steps or subroutines of the methods described herein so that multiple processors cooperate to implement the functions described herein. In addition, in the case where the device 1100 is implemented in a cloud computing system, the various hardware components may belong to separate physical systems. For example, the processor 1120 may include a first processor in a first server and a second processor in a second server.

[0203] It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design many alternative embodiments.

[0204] In the claims, any reference signs between brackets shall not be construed as limiting the claims. The use of the verb "comprise" and its conjugations does not exclude the presence of other elements or steps not mentioned in the claims. The word "a" or "an" preceding an element does not exclude the presence of a plurality of such elements. When preceding a list of elements, an expression such as "at least one of..." indicates the selection of all elements or any subset of elements from the list. For example, the expression "at least one of A, B and C" should be understood to include only A, only B, only C, both A and B, both A and C, both B and C, or all A, B and C. The present invention may be implemented by hardware comprising several different elements and by a suitably programmed computer. In a device claim enumerating several means, several of these means may be embodied by the same piece of hardware. The fact that certain measures are recited in mutually different dependent claims does not mean that a combination of these measures cannot be used to advantage.

[0205] In the claims, references in parentheses refer to reference numerals in the drawings of exemplary embodiments or formulas of the embodiments, thereby increasing the understandability of the claims. These references should not be interpreted as limiting the claims.

Claims

1. A data filtering device, comprising: a data interface configured to retrieve data from a database, a user input interface configured to receive user input from a user input device, a memory configured to store a plurality of widget codes corresponding to a plurality of widgets, the widget codes including widget positions indicating a display area for displaying the corresponding widget on a display, the display area not overlapping with display areas of other widgets, a filtering type widget having a widget code for obtaining filtering parameters, a visualization type widget having a widget code configured to visualize data on the display, and A processor configured to: Presenting the plurality of widgets on the display at a display area of ​​the display corresponding to respective widget positions of the plurality of widgets, the presenting comprising, for a widget of a visualization type: selecting a plurality of control widgets of a filtering type from the plurality of widgets, wherein the widgets are controlled according to a control rule, the control rule taking as input a widget position of the widget of the visualization type and a widget position of the filtering type, and generating as output whether the widget of the filtering type is a control widget for the widget of the visualization type based on a relative position of the widget position of the filtering type compared to the widget position of the widget of the visualization type, acquiring data from the database, the data being filtered according to the filtering parameters of the selected plurality of control widgets, wherein the acquired data is acquired from the database by arranging a database query including parameters acquired from the filtering parameters of the control widgets, visualizing the filtered data according to a widget code of a widget of the visualization type; receiving user input on the user input interface; changing a widget position and / or a display area of ​​a widget based on received user input; and Re-presenting a widget affected by the changed widget position and / or display area of ​​the widget, including re-presenting the widget according to the changed widget position and / or display area, and presenting a widget with a different visualization type of the control widget due to the changed widget position and / or display area.

2. The data filtering device according to claim 1, wherein: The control rule also depends on the size of the display area of ​​the widget of the visualization type and the widget of the filtering type.

3. A data filtering device according to any one of the preceding claims, wherein: The multiple widgets include a first widget of a visualization type, a second widget of a visualization type, and a third widget of a filtering type, and the control rule depends on the widget position of the third widget, allowing the third widget to be selectively arranged as a control widget for the first widget instead of the second widget, or the third widget to be arranged as a control widget for the second widget instead of the first widget.

4. The data filtering device according to claim 1 or 2, wherein: The control rule determines the first widget of the filtering type as a control widget for the second widget of the visualization type, and the control rule includes: determining an overlap of an x-coordinate of a display area of ​​the first widget with an x-coordinate of a display area of ​​the second widget, and determining whether a y-coordinate of a display area of ​​the first widget is not lower than or higher than a y-coordinate of a display area of ​​the second widget, It is determined that the y coordinate of the display area of ​​the first widget overlaps the y coordinate of the display area of ​​the second widget, and the x coordinate of the display area of ​​the first widget is not lower than or higher than the x coordinate of the display area of ​​the second widget.

5. The data filtering device according to claim 1 or 2, wherein: Presenting a filter-type widget includes displaying on the display a parameter input for receiving the filter parameter from a user of the data filtering device.

6. The data filtering device according to claim 1 or 2, wherein: The filtering type widgets have configuration code for configuring data visualization, and the rendering visualization type widgets include: Data is acquired and / or filtered data is visualized according to the configuration code of the control widget.

7. The data filtering device according to claim 1 or 2, wherein: The processor is configured to iterate through the plurality of widgets to build at least one tree data structure indicative of the control widgets.

8. The data filtering device according to claim 1 or 2, wherein: The processor is configured to iterate through the plurality of widgets to build a table indicating display areas of the widgets, and selecting a control widget for a visualization widget includes iterating through widgets in the table other than the visualization widget and applying the control rule.

9. A method (400) for displaying data on a display, the method comprising: providing (410) a connection to a database to retrieve data, providing a user interface for receiving user input from a user input device, storing (420) a plurality of widget codes corresponding to the plurality of widgets, the widget codes including widget positions indicating a display area for displaying the corresponding widget on a display, the display area not overlapping with display areas of other widgets, a filtering type widget having a widget code for obtaining filtering parameters, a visualization type widget having a widget code configured to visualize data on the display, presenting (430) the plurality of widgets on the display at a display area of ​​the display corresponding to respective widget positions of the plurality of widgets, the presenting comprising, for a widget of a visualization type, selecting (440) a plurality of control widgets of filtering type from the plurality of widgets, wherein the widgets are controlled according to a control rule, the control rule taking as input a widget position of the widget of the visualization type and a widget position of the widget of the filtering type, and generating as output whether the widget of the filtering type is a control widget for the widget of the visualization type based on a relative position of the widget position of the widget of the filtering type compared to the widget position of the widget of the visualization type, acquiring (450) data from the database, the data being filtered according to the filter parameters of the selected plurality of control widgets, wherein the acquired data is acquired from the database by arranging a database query including parameters acquired from the filter parameters of the control widgets, visualizing (460) the filtered data according to a widget code of a widget of the visualization type; receiving user input on the user input interface; changing a widget position and / or a display area of ​​a widget based on received user input; and Re-presenting a widget affected by the changed widget position and / or display area of ​​the widget, including re-presenting the widget according to the changed widget position and / or display area, and presenting a widget with a different visualization type of the control widget due to the changed widget position and / or display area.

10. A transitory or non-transitory computer readable medium (1000) comprising data (1020) representing instructions for causing a processor system to perform the method according to claim 9.

Citation Information

Patent Citations

  • Method and system for reconfiguring a multidimensional interface using dimension tiles

    US20140380210A1