IP Library Granted Patent US 8,504,589
Granted Patent B2
US 8,504,589 · App. 13/465,922 · Granted Aug 6, 2013

Categorical filtering of data

Inventor: Davor Cubranic (Vancouver, CA)
Assignee: Business Objects Software Ltd.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,504,589
App. No.
13/465,922
Granted
Aug 6, 2013
Kind
B2
Abstract

A computer readable storage medium includes executable instructions to retrieve a dataset from a data source, where the dataset includes a first set of categories. A data structure that represents the dataset is built. A first set of merit values for the first set of categories is calculated. The first set of categories is ordered based on a criterion. The first set of categories is returned.

Claims (59)

1. A non-transitory computer readable storage medium, comprising executable instructions to:

receive a request for information about a data set;

parse, in response to the request, an enumeration tree based on the data set to obtain the requested information; and

return the requested information;

wherein the enumeration tree comprises nodes connected by edges and is formed by:

retrieving the data set with a set of records and a set of categories;

reordering the data set by successively grouping the set of records in accordance with the set of categories;

accepting a filter;

copying a set of applicable branches from the enumeration tree, the set of applicable branches being specified by the filter; and

modifying the enumeration tree with the set of applicable branches.

2. A computer readable storage medium as in claim 1 , wherein each category includes a set of attributes.

3. A computer readable storage medium as in claim 2 , wherein the enumeration tree is further formed by: calculating a count of distinct attributes in each category of the set of categories.

4. A computer readable storage medium as in claim 3 , wherein the set of categories are reordered by ascending attribute count.

5. A computer readable storage medium as in claim 3 , wherein the enumeration tree is further formed by calculating a first plurality of merit values, wherein each merit value is proportional to entropy of a category and coverage of the category and each merit value is inversely proportional to the number of distinct attributes of the category.

6. A computer readable storage medium as in claim 5 , wherein the first plurality of merit values are calculated by:

calculating entropy for each category in the first set of categories;

calculating coverage for each category; and

normalizing the product of the entropy and the coverage by dividing by a value proportional to the number of distinct attributes in each category.

7. A method for implementation by one or more data processors comprising:

receiving, by at least one data processor, a request for information about a data set;

parsing, by at least one data processor in response to the request, an enumeration tree based on the data set to obtain the requested information; and

returning, by at least one data processor, the requested information;

wherein the enumeration tree comprises nodes connected by edges and is formed by:

retrieving the data set with a set of records and a set of categories;

reordering the data set by successively grouping the set of records in accordance with the set of categories;

accepting a filter;

copying a set of applicable branches from the enumeration tree, the set of applicable branches being specified by the filter; and

modifying the enumeration tree with the set of applicable branches.

8. A method as in claim 7 , wherein each category includes a set of attributes.

9. A method as in claim 8 , wherein the enumeration tree is further formed by:

calculating, by at least one data processor, a count of distinct attributes in each category of the set of categories.

10. A method as in claim 9 , wherein the set of categories are reordered by ascending attribute count.

11. A method as in claim 9 , wherein the enumeration tree is further formed by calculating, by at least one data processor, a first plurality of merit values, wherein each merit value is proportional to entropy of a category and coverage of the category and each merit value is inversely proportional to the number of distinct attributes of the category.

12. A method as in claim 11 , wherein the first plurality of merit values are calculated by:

calculating, by at least one data processor, entropy for each category in the first set of categories;

calculating, by at least one data processor, coverage for each category; and

normalizing, by at least one data processor, the product of the entropy and the coverage by dividing by a value proportional to the number of distinct attributes in each category.

13. A method as in claim 7 , wherein there are a plurality of data processors forming part of at least two computing systems.

14. A system comprising:

at least one data processor; and

memory storing instructions which when executed by the at least one data processor result in operations comprising:

receiving a request for information about a data set;

parsing an enumeration tree based on the data set to obtain the requested information; and

returning the requested information;

wherein the enumeration tree comprises nodes connected by edges and is formed by:

retrieving the data set with a set of records and a set of categories;

reordering the data set by successively grouping the set of records in accordance with the set of categories;

accepting a filter;

copying a set of applicable branches from the enumeration tree, the set of applicable branches being specified by the filter; and

modifying the enumeration tree with the set of applicable branches.

15. A system as in claim 14 , wherein each category includes a set of attributes.

16. A method as in claim 15 , wherein the enumeration tree is further formed by:

calculating a count of distinct attributes in each category of the set of categories.

17. A method as in claim 16 , wherein the set of categories are reordered by ascending attribute count.

18. A system as in claim 16 , wherein the enumeration tree is further formed by calculating, by the at least one data processor, a first plurality of merit values, wherein each merit value is proportional to entropy of a category and coverage of the category and each merit value is inversely proportional to the number of distinct attributes of the category.

19. A system as in claim 18 , wherein the first plurality of merit values are calculated by the at least one data processor by:

calculating entropy for each category in the first set of categories;

calculating coverage for each category; and

normalizing the product of the entropy and the coverage by dividing by a value proportional to the number of distinct attributes in each category.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2012
From: CUBRANIC, DAVOR
To: BUSINESS OBJECTS, S.A.
Reel/Frame 028173/0251 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2012
From: BUSINESS OBJECTS, S.A.
To: BUSINESS OBJECTS SOFTWARE LTD.
Reel/Frame 028173/0302 →
Continuity (3)
Division 12347593 · Dec 31, 2008
Continuation 11555234 · Oct 31, 2006
Related Publication 20120221575A1 · Aug 30, 2012