Information retrieval system and method
09922078 ยท 2018-03-20
Assignee
Inventors
Cpc classification
G06F16/2425
PHYSICS
Y10S707/99937
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
Y10S707/99933
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
International classification
Abstract
An information retrieval method, process, and apparatus are provided which includes iterative or parametric data set querying. The result of each query iteration is displayed in an easy to analyze fashion, enabling the user to interactively refine the query with additional iterations. Each field of data in a data set is represented by a filter in a filter tree table. A user may graphically select and de-select filters using the filter tree table. The selections are converted into a filtering query that is run against the data set to produce filtered data. A summary query is then run against the results of the filtering query. The filtered data is displayed, along with the selected filters of the filter tree table. The filter tree table may also include and display other information related to each filter, such as an associated data item count as generated by the summary query. Further user input is accepted, with the user input further selecting or de-selecting data groupings to be displayed. The user input is fed back to generate another filtering iteration. In this manner, when the user makes a single selection or de-selection, all applicable filters are changed, and the user changes are propagated through all appropriate filters.
Claims
1. A computer-implemented information filtering method comprising: accepting, by a computer having a processor and a memory, a user selection or de-selection of at least one of a plurality of data groupings within a filter tree table, said data groupings being associated with a plurality of data items in an unfiltered data table, said selection or de-selection modifying which of the plurality of data groupings within the filter tree table are selected, wherein the selected data groupings as modified by the user selection or de-selection include one or more data groupings of the plurality of data groupings not selected by the user selection or de-selection; generating, by the computer, a filtering query, including at least one query operator, based on the selected data groupings from said plurality of data groupings as modified by the user-selection or de-selection; running, by the computer, said filtering query against said unfiltered data table; receiving, by the computer, a plurality of filtered data items from said unfiltered data table in response to said filtering query; creating, by the computer, a filtered data table with said plurality of filtered data items; generating, by the computer, a data item count for each of the selected data groupings as modified by the user selection or de-selection; and communicating said filtered data table and said filter tree table to one or more displays, wherein the filter tree table includes the generated data item count for each of the selected data groupings as modified by the user selection or de-selection.
2. The method of claim 1, further comprising the steps of: selecting, by the computer, one or more data sets automatically or in response to a user input; receiving, by the computer, a plurality of data items from said one or more data sets; creating, by the computer, said unfiltered data table based on said plurality of data items; communicating, by the computer, said unfiltered data table to the one or more displays; and updating, by the computer, said filter tree table with selectable data groupings associated with said plurality of data items.
3. The method of claim 1, further comprising the steps of: generating, by the computer, a summary query from selected data groupings of said filter tree table; running, by the computer, said summary query against said filtered data table; generating, by the computer, summary results comprising said data item counts; and updating, by the computer, said filter tree table with said summary results.
4. The method of claim 1, further comprising the step of generating, by the computer, one or more data item results.
5. The method of claim 1, further including a preliminary step of selecting, by the computer, a data set.
6. The method of claim 1, wherein said data set comprises a database.
7. The method of claim 1, wherein said data set comprises one or more data tables.
8. The method of claim 1, wherein a first filter level of said filter tree table corresponds to a column in said data set.
9. The method of claim 1, further including the step of communicating, by the computer, the data item count for a particular data grouping to the one or more displays.
10. The method of claim 1, further including the step of updating, by the computer, all data item counts upon a data grouping selection or de-selection by said user.
11. The method of claim 1, wherein all data groupings are automatically recalculated upon a selection or de-selection by said user.
12. The method of claim 1, wherein said generating a filtering query step includes creating, by the computer, said filtering query based on selected data groupings.
13. The method of claim 1, wherein said filtering query is a SQL query.
14. The method of claim 1, wherein said user input includes clicking on a selection icon corresponding to a predetermined data grouping.
15. An information filtering apparatus comprising: a processor; a user interface, communicating with said processor, to interface with a user; an unfiltered data table, communicating with said processor, to store one or more data items; a filtered data table, communicating with said processor, to store one or more filtered data items; a filter tree table, communicating with said processor, to store one or more data groupings associated with said data items; wherein said processor is configured to: receive, from said user interface, a user selection or de-selection of at least one of said data groupings in said filter tree table, said selection or de-selection modifying which of the plurality of data groupings within the filter tree table are selected, wherein the selected data groupings as modified by the user selection or de-selection include one or more data groupings of the plurality of data groupings not selected by the user selection or de-selection, generate at least one filtering query based on the selected data groupings as modified by the user selection or de-selection, run said filtering query against said unfiltered data table, fill said filtered data table with filtered data items from said unfiltered data table, generate a data item count for each of the selected data groupings as modified by the user selection or de-selection, and communicate said filtered data table and said filter tree table using said user interface to one or more displays, wherein the filter tree table includes the generated data item count for each of the selected data groupings as modified by the user selection or de-selection.
16. The apparatus of claim 15, wherein said processor, said unfiltered data table, said filtered data table and said filter tree table are hosted by a data server accessible to a plurality of clients in a client-server arrangement.
17. The apparatus of claim 15, wherein said processor, said unfiltered data table, said filtered data table and said filter tree table are hosted by a user computer that includes input and output devices.
18. The apparatus of claim 15, further comprising a data source interface, communicating with said processor, to receive data from one or more external data sources.
19. The apparatus of claim 15, further comprising a data source interface, communicating with said processor, to receive data items from one or more external data sources and translate said received data items into a predetermined data format.
20. The apparatus of claim 15, further comprising at least one internal data source communicating with said processor.
21. The apparatus of claim 15, wherein said filter tree table stores data item counts corresponding to each data grouping.
22. The apparatus of claim 15, wherein said filter tree table stores data item results corresponding to each data grouping.
23. The apparatus of claim 15, wherein said processor generates a display of one or more data items corresponding to selected data groupings in said filter tree table.
24. The apparatus of claim 15, wherein said processor generates a display of a parametric filter comprising data groupings stored in said filter tree table.
25. The apparatus of claim 15, wherein said processor generates a display of a parametric filter comprising data groupings and said data item counts stored in said filter tree table.
26. The apparatus of claim 15, wherein said processor generates a display of a parametric filter comprising data groupings and data item results stored in said filter tree table.
27. A computer-implemented information filtering method comprising: accepting, by a computer having a processor and a memory, a user selection or de-selection of at least one of a plurality of data groupings within a filter tree table, said data groupings being associated with a plurality of data items in an unfiltered data table, said selection or de-selection modifying which of the plurality of data groupings within the filter tree table are selected, wherein the selected data groupings as modified by the user selection or de-selection include two or more data groupings of the plurality of data groupings; generating, by the computer, a filtering query, including at least one query operator, based on the selected data groupings from said plurality of data groupings as modified by the user selection or de-selection; running, by the computer, said filtering query against said unfiltered data table; receiving, by the computer, a plurality of filtered data items from said unfiltered data table in response to said filtering query; creating, by the computer, a filtered data table with said plurality of filtered data items; generating, by the computer, a data item count for each of the selected data groupings as modified by the user selection or de-selection; and communicating said filtered data table and said filter tree table to one or more displays, wherein the filter tree table includes the generated data item count for each of the selected data groupings as modified by the user selection or de-selection.
28. The method of claim 27, wherein the selected data groupings as modified by the user selection or de-selection include one or more data groupings of the plurality of data groupings not selected by the user selection or de-selection.
29. An information filtering apparatus comprising: a processor; a user interface, communicating with said processor, to interface with a user; an unfiltered data table, communicating with said processor, to store one or more data items; a filtered data table, communicating with said processor, to store one or more filtered data items; a filter tree table, communicating with said processor, to store one or more data groupings associated with said data items; wherein said processor is configured to: receive, from said user interface, a user selection or de-selection of at least one of said data groupings in said filter tree table, said selection or de-selection modifying which of the plurality of data groupings within the filter tree table are selected, wherein the selected data groupings as modified by the user selection or de-selection include two or more data groupings of the plurality of data groupings, generate at least one filtering query based on the selected data groupings as modified by the user selection or de-selection, run said filtering query against said unfiltered data table, fill said filtered data table with filtered data items from said unfiltered data table, generate a data item count for each of the selected data groupings as modified by the user selection or de-selection, and communicate said filtered data table and said filter tree table using said user interface to one or more displays, wherein the filter tree table includes the generated data item count for each of the selected data groupings as modified by the user selection or de-selection.
30. The apparatus of claim 29, wherein the selected data groupings as modified by the user selection or de-selection include one or more data groupings of the plurality of data groupings not selected by the user selection or de-selection.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
(8)
(9) In step 204, a data source is selected. The data source may include one or more databases, data tables, etc. The data source selection may be made automatically or may be performed by a user.
(10) In step 206, an unfiltered data table receives data from the selected data source or sources. The data source may be a database, a table, etc., and may include multiple data sources. The unfiltered data table may therefore serve as a data accumulator and as a data translator, as the unfiltered data table may be capable of translating data items into a desired data format. In addition, the data source may be an external data source, and the unfiltered data table may communicate with the data source over some manner of communication link, such as over a computer network, a telephone line, a wireless communication link, etc.
(11) In step 210, the data in the unfiltered data table is optionally displayed. All data in the data set will be displayed, as no filtering of the data has yet been performed.
(12) In step 213, a filter tree table is updated. The filter tree table contains one or more filters that may be used to filter the unfiltered data table. The one or more filters form a parametric filter that may be used to interactively and iteratively define the data display. Although the parametric filter and therefore the filter tree table do not necessarily have to be in a tree configuration, for purposes of discussion the table will be referred to as a filter tree table.
(13) The filter tree table reflects possible user selection choices in the parametric filter. It is used to generate filtering queries that are sent to the unfiltered data table. These filtering queries are employed to filter the data contained in the unfiltered data table.
(14) In any pass of the loop except the startup pass, the filter tree table may be updated by configuring the filter tree table according to the user selections (reflected in the parametric filter). In a startup pass, the filter tree table may be configured according to a default. The default may select all filters (all data items are displayed), may select no filters (no data items are displayed), or may select some combination of filters.
(15) In step 218, a filtering query is generated. The filtering query may be automatically generated, and reflects all data grouping selections in the parametric filter. The filtering query may be any type of filtering query that selects and organizes data for display and/or manipulation, such as a SQL database query. The filtering query is typically composed of query operators, including Boolean operators, that may be used to select data items from the data set available to the user in the unfiltered data table.
(16) In step 222, the filtering query is run against the unfiltered data table. The filtering query therefore controls the flow of data from the unfiltered data table to a filtered data table.
(17) In step 224, the filtered data table is filled with data items filtered from the unfiltered data table. The filtered data table therefore contains the filtered data items received from the unfiltered data table as a result of the filtering query.
(18) In step 226, the data items in the filtered data table are displayed to the user. This may include generating the display data to an attached output device, such as a computer screen or monitor. Alternatively, it may include transmission of the data to the user when the user is at a remote site. An example of this is in a client server arrangement where the client, i.e., the user, is communicating with the server, i.e., a computer running a software according to the invention. The resulting data items or records may be displayed in a table, graph, or other format according to the user's needs.
(19) In step 230, a summary query is generated. The summary query is used to obtain data item counts and data item results for each data grouping selected in the parametric filter (as reflected in the filter tree table). Therefore, each iteration of the method comprises two queries, a filtering query and a summary query.
(20) In step 235, the summary query is run against the filtered data table in order to generate a summary result.
(21) In step 251, the summary result is generated from the data items in the filtered data table.
(22) In step 256, the filter tree table is updated with the summary result. This may include a data item count for each data grouping displayed in the parametric filter. The data item count is the number of displayed data items for that particular data grouping (see
(23) In addition, any manner of arithmetic or data operation may be performed on a data field and displayed. The result of such an operation is termed a data item results. The data item results may reflect any manner of numerical totals of data within a data grouping. For example, if a data grouping is a column in a table such as a costs field, the data item results number may be a summary of all selected costs in the column. If every row having a cost column entry is selected, the data item result would therefore contain a total cost. Alternatively, if not all of the rows that have an entry in the cost data field column are selected, the data item result total may reflect only a partial total of all available entries. The data item results may therefore operate like a spreadsheet, and may automatically provide a tally for a particular data grouping.
(24) In step 259, the filter data is displayed to the user (discussed below in conjunction with
(25) In step 269, the method accepts user input. If the user generates an input, such as selecting or de-selecting a particular data grouping, the method branches back to step 213. In this manner, the method allows the user to interactively and iteratively define and refine the data display by selecting and de-selecting items from the parametric filter.
(26) If no input is received, the method may loop until an input is received. Therefore, the user is not limited to a single selection, and the method may continue to accept inputs, modify the query, and modify the set of displayed data items. The invention advantageously includes multiple filters working in conjunction. Therefore, when the user makes a single selection or de-selection, all applicable filters are changed. As a result, data grouping changes may ripple through the filters.
(27) It should be noted that the branching provides a feedback of the filtering result. By employing this feedback mechanism, the user can iteratively refine a query until a desired result is achieved. This is in contrast to the prior art, where if a query does not produce a desired display, the user must reformulate the query, and is not able to refine and modify an existing filtering query.
(28) The user input may comprise a selection or de-selection of a data grouping in a parametric filter level. The user input may be accepted as an input to a selection icon 508, such as a checkbox, for example (see
(29) The user input may be received from a remote location, such as in a client-server architecture. Alternatively, the user input may be input directly to a database management system from an input device linked to the database management system. Furthermore, the input may be obtained from multiple data sources, such as multiple databases, for example.
(30) In a preferred embodiment, the method according to the invention may be implemented in a client-server arrangement, wherein the database and the database management system exists on a data server that can be accessed by a client. The client may access the server in any manner, such as through a network, through a phone link, through a wireless network link, etc. Alternatively, the database and database management system and user may all exist on a single computer or computer device.
(31) One benefit of the graphical information retrieval according to the invention is that the user can graphically and intuitively navigate data in a database and select data. The user can de-select information that is not of interest or that is not pertinent. Therefore, the user can perform actions more quickly and efficiently.
(32) In addition, another benefit of the graphical information retrieval according to the invention is that a user may quickly generate reports (or other output) containing only desired or necessary items, and may quickly filter the data in the database. This may be very helpful where a database is complex and/or contains many data types. For example, a user may focus on a particular data grouping, such as a priority data field (i.e., a table column, see
(33) In yet another benefit, the graphical information retrieval according to the invention may allow a user to more quickly assess and understand the amount and types of data in a data set. This may be accomplished by reviewing the data displayed in response to a selection of data groupings. It may also be accomplished by selecting and de-selecting data groupings and viewing the data items brought into the data display area 402 as a result of each data grouping selection.
(34) Furthermore, the user may quickly and easily move between displays. Therefore, if a user wants to look at a column or data field having a certain data value and additionally wants to see other rows and columns that correspond to that column or data field, the user may quickly and easily move between those two displays by selecting and de-selecting the appropriate data groupings. In this manner, a user may contrast and compare data of two or more displays.
(35) The benefits of the invention are especially advantageous due to the increased use of databases and the increased use of client-server databases accessible over a network. For example, many large databases are available over the Internet, wherein a user who has no previous experience with a particular database may access the database. By employing the information retrieval according to the invention, the user does not need to learn the database type, the database program, or especially the types and amounts of data within the data set.
(36)
(37) The filter tree table 314 receives inputs from the client (i.e., the arrow from the filter tree display 363). In response, the filter tree table 314 generates two queries for each user selection or de-selection, a filtering query and a summary query.
(38) The filtering (database) query 320 causes a transfer of data items from the unfiltered data table 309 to the filtered data table 311. The filtering query 320 is created from the selected data groupings in the filter tree table 314. The filtered data table 311 therefore reflects all data items selected through the filtering query 320.
(39) The filtered data in the filtered data table 311 is communicated to the data display 370 of the client 360. As a result, the data display 370 displays all selected data items.
(40) In the second query, the data in the filter tree table 314 is used to generate a summary query 333. The summary query 333 requests data item counts for the selected data groupings, and optionally requests data item results. The data item counts and the data item results are generated from the data items in the filtered data table 311 to form the summary result 323.
(41) The summary result 323 is communicated to the filter tree table 314. When the summary result 323 is received in the filter tree table 314, then the contents of the filter tree table 314 are communicated to the filter tree display 363.
(42) Therefore, by using both the filtering query 320 and the summary query 333, the client 360 receives a data display and a filter tree display according to a current parametric filter.
(43)
(44) The parametric filter display 405 contains a parametric filter that enables an organization of data within the data set (such as a hierarchical organization, for example). The parametric filter display 405 controls the data groupings and data items shown in the data display area 402. Any changes to the parametric filter display 405, such as a new selection or de-selection of a data grouping, will cause a change in the data shown in the data display area 402.
(45) A data grouping may be any grouping of data capable of being selected by a user. This may include data groupings such as a table column (i.e., Status, for example), records, or may include any data grouping based on the data within a data set. For example, a data grouping may be Date Due, which is a first filter level 411 and is also a table column. Other data groupings could be a year or a month of a particular year, for example.
(46) The parametric filter display 405 may be broken down into a first filter level 411, a second filter level 414, a third filter level 418, etc. Located beneath each first filter level entry are data groupings or data items associated with that first filter level entry. Each filter level may have multiple filter levels beneath it, according to how a particular data set is defined. Lower filter level entries may also have an associated data item count that reflects the number of data items associated with the lower filter level data grouping.
(47) In the example parametric filter shown, the parametric filter display 405 has as first filter levels Organization, Date Due, and Resp. Person. In a second filter level 414 under Organization is Acme Company. In a third filter level 418 under Acme Company is Chemical Division and Examples. More filter levels may be included as needed.
(48) In the figure, the October data grouping for the year 2000 contains ten data items. Therefore, if the user is to scroll through the data display area 402, the user will see 10 items under the Date Due column that have a due date of October, 2000. This may be further determined by looking under the first filter level 411 for date due, under the second filter level 414 for 2000 as year, and a third filter level 418 for October. In the example shown, the October data grouping shown includes only October entries for the year 2000. It should be noted that the levels could be arranged in other ways, such as a month filter level could have one or more years as lower filter levels, for example.
(49) The display may further include a data item count 444 for each displayed data grouping. A data item count 444 reflects the number of data items included in the particular data grouping. For example, the Safety Engineer data grouping includes six data items for the safety engineer.
(50) In a preferred embodiment, only selected data groupings have an associated data item count 444. Alternatively, all displayed data groupings, including selected and de-selected data groupings, may include a data item count.
(51) It should be understood that if the data item count for a particular data grouping is zero, the data grouping does not necessarily disappear. All possible instances that are capable of being selected are displayed (except where there are no items already associated with the data grouping). For example, if the year 2000 is selected, all months that have data associated with the year 2000 are displayed. In a preferred embodiment, the data filtering may be configured so that the data grouping remains displayed until the user de-selects it. In a less preferred embodiment, the data filtering may be configured so that a data grouping disappears from the display if an associated data item count is zero.
(52) The advantage presented by a data item count 444 is that the user can quickly grasp the number of items that are included in a selected data grouping, even though not all of the relevant data items may be physically shown in the data display area 402 without scrolling. For example, by being able to visually understand the numbers of data items, the user may be able to tell whether he or she has selected the proper entries from the parametric filter display 405. Conversely, the user may also be able to determine if an insufficient number of data groupings are currently selected.
(53) A change to a data selection in one part of the parametric filter display 405 may affect other parts of the parametric filter display 405. Because the data items are interrelated, a selection or de-selection of a data item may therefore affect the data item counts of other data groupings. For example, de-selecting the data grouping Facilities Manager may generally change the data item counts for various year and/or month data groupings.
(54) By presenting the organization of the data set in a graphical user interface (GUI) comprising a parametric filter, users can easily and quickly comprehend the organization of the data set. Furthermore, the user can easily and quickly specify what data groupings are displayed. The result is a user interface that allows quick and easy information retrieval without having to learn any special commands. Therefore, the user interface is easily manipulated without the need for any training.
(55)
(56) This figure illustrates that the lower filter levels 414, 418, etc., determine the amount of filtering. If no lower filter levels are selected for a filter, all filters are included and no data items are displayed for the particular filter (i.e., all data items are filtered out). Conversely, if all lower filter levels are selected, no filters are included and all data is displayed. Each selection by a user therefore serves to define part of a query, and each selection corresponds to one or more query operators included in a query sent to the database management system (including, for example, Boolean operators).
(57) A database management system (or other software) may set up the parametric filter so that each data field or column of a table or database has a corresponding first level filter entry.
(58)
(59)
(60) The processor 703 may be any type of processor. The processor 703 may execute software routines stored in the memory 706, and may execute an information retrieval according to the invention.
(61) The memory 706 may be any type of digital memory, including a random access memory (RAM), a read-only memory (ROM), a magnetic storage medium such as tape or disk, optical memory, etc.
(62) The user interface 710 accepts user inputs and generates output to the user. The user input may include a data set selection. The user input may further include selections and de-selections of data groupings displayed in a parametric filter. The outputs may include displaying portions of a data set and displaying a parametric filter.
(63) It should be understood that the user may be remote from the information retrieval system 700, and will typically communicate with the server over some sort of communication link or network, such as for example, a local area network (LAN), a wide area network (WAN), a virtual private network (VPN), over the Internet, via a modem, via a wireless modem, over a public switched telephone network (PSTN), etc. Therefore, the user interface 710 may include a communications interface, such as a modem, network card, etc., that enables data communication between the information retrieval system 700 and the user. In addition, the user interface 710 may allow multiple users to interface with the information retrieval system 700. It should be noted that the method according to the invention could equally well be implemented on a single computer device, such as, for example, a personal computer or a mainframe computer having multiple work stations wherein the client and client displays are part of the computer system.
(64) The data source interface 719 enables the information retrieval system 700 to communicate with one or more external data sources. The external data sources may be databases, data tables, etc. The data source interface 719 may be used by the information retrieval system 700 to accumulate data items from multiple data sources. In addition, the data source interface 719 may translate data items into a desired data format. Furthermore, the data source interface 719 may perform some pre-processing on the data items. For example, the data source interface 719 may add identification data to incoming data items.
(65) The unfiltered data table 717 receives and holds data items received from external data sources. The unfiltered data table 717 therefore contains the raw, unfiltered data. The unfiltered data table 717 is preferably a relational database and may contain multiple rows and multiple columns.
(66) The filtered data table 714 receives data items received from the unfiltered data table 717 in response to a filtering query. Accordingly, data in the filtered data table 714 is a subset of the data set contained within the unfiltered data table 717. Preferably, the filtered data table 714 is similar to the unfiltered data table 717 in size, data format, etc. The data items in the filtered data table 714 may be displayed to the user.
(67) The filter tree table 728 includes all data groupings (i.e., filters) of the parametric filter. A data grouping selection or de-selection by a user is reflected in the filter tree table 728.
(68) The filter tree table 728 also includes data item counts and data item results, as produced by a summary query. The data groupings, the data item counts, and the data item results are displayed to the user.
(69) Each filter within the filter tree table 728 may include several information items. One information item is the relationship of one filter to the other filters in the filter tree table 728. For example, the year filter may be the child of the Date Due filter, and the month filter may be a child of the year filter. Therefore, each filter may contain an information item entry that indicates the filters above and below the particular filter (or otherwise related to the filter). These relationships may be used to determine any needed recalculations when a filter is selected or de-selected.
(70) Another information item may be a filter type, such as a date filter, a year filter, or a standard filter, for example.
(71) Yet another information item may be whether a particular filter is currently selected or de-selected. This information item may control display calculations, among other things, and is used when a query is generated (only the selected filters are included in a query).
(72) Yet another information item may be a filter display name, such as Facilities Manager. This is desirable because a filter may be internally labeled in a cryptic manner, such as fac.sub.13 mgr, for example. The filter display name may be used to display an appropriately descriptive name for each filter.
(73) Yet another information item may be a quantity of data items that match a particular filter (i.e., a data item count). In addition, the quantity may be a data item result. The data item result may be, for example, a summation of a data field such as cost, and may be stored instead of or in addition to a data item count.
(74) When a filter is added to the parametric filter, it is added to the filter tree table 728. When a query is generated that causes a new data grouping to be displayed, the data grouping/new filter is added to the filter tree table 728. Whenever a data item count changes, based on a new query, the data item count is changed in the filter tree table 728. Furthermore, whenever a filtering query or summary query is generated, it is generated from entries within the filter tree table 728.
(75) The optional data source 722 may be a data source (or sources) internal to the information retrieval system 700. The data source 722 may be included in addition to external data sources.
(76) The information retrieval system 700 according to the invention may be implemented through a software program. The software program may be available on a disk, through a network download, etc. The information retrieval system 700 may be a complete software package, including a database or tables, a database management system, and the parametric filtering according to the invention. Alternatively, the information retrieval system 700 may be added to an existing database or data storage as an additional functionality.
(77) While the invention has been described in detail above, the invention is not intended to be limited to the specific embodiments as described. It is evident that those skilled in the art may now make numerous uses and modifications of and departures from the specific embodiments described herein without departing from the inventive concepts.