IP Library Granted Patent US 8,078,638
Granted Patent B2
US 8,078,638 · App. 12/169,931 · Granted Dec 13, 2011

Operations of multi-level nested data structure

Assignee: Yahoo! Inc.
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,078,638
App. No.
12/169,931
Granted
Dec 13, 2011
Kind
B2
Abstract

Multiple sets of data are obtained from different sources. Each data set is represented using a different format having a different syntax and organized in a multi-level nested data structure. Each data set is reformatted into a standardized table format using a depth-first recursive algorithm without relying on the syntax schema of the original format of the data set. Various operations are performed on the tables corresponding to the data sets, including but not limited to joining multiple tables, grouping selected rows of a table, ranking rows of a table, adding or deleting fields from selected rows of a table, etc. Optionally, inferred namespace and text normalization are utilized for selected table operations. One or more templates are provided for converting the data set of a table to a format that may be presented to a user.

Claims (43)

1. A method implemented on a machine having at least one processor, storage, and communication platform, comprising:

accessing a first table corresponding to a first set of data, wherein the first set of data contains a first plurality of name-value pairs organized in a multi-level nested structure and represented using a first format with a first syntax, the first table has at least one row and each row has at least one field, and the first table corresponds to a name-value pair from the first set of data that is located at two levels outside an innermost level, each row of the first table corresponds to a name-value pair nested immediately within the name-value pair corresponding to the first table, and each field of a row corresponds to a name-value pair nested immediately within the name-value pair corresponding to the row;

accessing at least a second table corresponding to a second set of data, wherein the second set of data contains a second plurality of name-value pairs organized in a multi-level nested structure and represented using a second format with a second syntax, the second table has at least one row and each row has at least one field, and the second table corresponds to a name-value pair from the second set of data that is located at two levels outside an innermost level, each row of the second table corresponds to a name-value pair nested immediately within the name-value pair corresponding to the second table, and each field of a row corresponds to a name-value pair nested immediately within the name-value pair corresponding to the row;

joining at least the first table and the second table according to a join predicate to obtain a third table, such that a row from the first table and a row from the second table are combined to form a row in the third table if the row from the first table and the row from the second table both satisfy the join predicate; and

automatically resolving any namespace conflict when joining the first table and the second table, such that if a field from a first row from the first table and a field from a second row from the second table have the same name and the first row and the second row are to be combined, then the field from the first row is automatically qualified with a name of the first table and the field from the second row is automatically qualified with a name of the second table.

2. A method as recited in 1 , further comprising:

converting the first set of data into the first table; and

converting the second set of data into the second table, wherein the first set of data and the second set of data are converted into the first table and the second table respectively without relying on any schema for the first syntax and the second syntax.

3. A method as recited in 1 , wherein the first table and the second table are joined without any namespace qualification.

4. A method as recited in claim 1 , wherein the join predicate is expressed as a conditional function.

5. A method as recited in 1 , further comprising:

grouping selected rows from the third table according to a group predicate, such that all the rows from the third table that satisfy the group predicate are grouped into a single row.

6. A method as recited in 5 , further comprising:

grouping selected rows from the third table further according to a field grouping scheme, such that duplicate fields from the selected rows are replaced with a single field having a value calculated according to the field grouping scheme.

7. A method as recited in 1 , further comprising:

ranking the rows from the third table according to a rank predicate.

8. A method as recited in 1 , further comprising:

presenting the third table based on a template.

9. A system, comprising:

at least one storage device; and

at least one processor coupled to the at least one storage device, the at least one processor configured for performing:

(i) a reformat operation that receives as input a data set having a plurality of data elements organized in a multi-level nested data structure and returns as output a first table, wherein the first table has at least one row and each row has at least one field, the first table corresponds to a data element that is located at two levels outside an innermost level, each row of the first table corresponds to a data element nested immediately within the data element corresponding to the first table, and each field of a row corresponds to a data element nested immediately within the data element corresponding to the row; and

(ii) a join operation that receives as input a second table, a third table, and a join predicate and returns as output a fourth table, such that a row from the second table and a row from the third table are combined to form a row in the fourth table if the row from the second table and the row from the third table both satisfy the join predicate,

wherein

when performing the join operation, the at least one processor automatically resolves any namespace conflict when joining the second table and the third table, such that if a field from a first row from the second table and a field from a second row from the third table have the same name and the first row and the second row are to be combined, then the field from the first row is automatically qualified with a name of the second table and the field from the second row is automatically qualified with a name of the third table.

10. The system of claim 9 , wherein the input data set is represented using a format having a predefined syntax, and the reformat operation does not rely on a schema of the predefined syntax.

11. The system of claim 9 , wherein the at least one processor is further configured for performing:

a group operation that receives as input a fifth table and a group predicate and returns as output a sixth table, such that selected rows from the fifth table that satisfy the group predicate are grouped into a single row in the sixth table.

12. The system of claim 9 , wherein the at least one processor is further configured for performing:

a rank operation that receives as input a seventh table and a rank condition and returns as output a eight table, such that the rows in the seventh table are ranked according to the rank condition.

13. The system of claim 9 , wherein the at least one processor is further configured for performing:

a text normalization operation that receives as input a first alpha-numerical string and returns as output a second alpha-numerical string, where all the alphabets in the first alphanumerical string are converted to either lower or upper case and all the trivial words and extra white spaces in the first alpha-numerical string are discarded.

14. The system of claim 9 , wherein the at least one storage device is configured for storing:

at least one template that complies with a predefined syntax for presenting a table to a user.

15. A tangible non-transitory machine-readable medium having information stored thereon, wherein the information, when read by a machine, causes the machine to perform the following:

access a first table corresponding to a first set of data, wherein the first set of data contains a first plurality of name-value pairs organized in a multi-level nested structure and represented using a first format with a first syntax, the first table has at least one row and each row has at least one field, and the first table corresponds to a name-value pair from the first set of data that is located at two levels outside an innermost level, each row of the first table corresponds to a name-value pair nested immediately within the name-value pair corresponding to the first table, and each field of a row corresponds to a name-value pair nested immediately within the name-value pair corresponding to the row;

access at least a second table corresponding to a second set of data, wherein the second set of data contains a second plurality of name-value pairs organized in a multi-level nested structure and represented using a second format with a second syntax, the second table has at least one row and each row has at least one field, and the second table corresponds to a name-value pair from the second set of data that is located at two levels outside the innermost level, each row of the second table corresponds to a name-value pair nested immediately within the name-value pair corresponding to the second table, and each field of a row corresponds to a name-value pair nested immediately within the name-value pair corresponding to the row;

join at least the first table and the second table according to a join predicate to obtain a third table, such that a row from the first table and a row from the second table are combined to form a row in the third table if the row from the first table and the row from the second table both satisfy the join predicate; and

automatically resolve any namespace conflict when joining the first table and the second table, such that if a field from a first row from the first table and a field from a second row from the second table have the same name and the first row and the second row are to be combined, then the field from the first row is automatically qualified with a name of the first table and the field from the second row is automatically qualified with a name of the second table.

16. The medium of claim 15 , wherein the information, when read by the machine, causes the machine to further perform the following:

convert the first set of data into the first table; and

convert the second set of data into the second table, wherein the first set of data and the second set of data are converted into the first table and the second table respectively without relying on any schema for the first syntax and the second syntax.

17. The medium of claim 15 , wherein the first table and the second table are joined without any namespace qualification.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE ASSIGNOR NAME PREVIOUSLY RECORDED AT REEL: 052853 FRAME: 0153. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 29, 2021
From: R2 SOLUTIONS LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 056832/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 053654 FRAME 0254. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST GRANTED PURSUANT TO THE PATENT SECURITY AGREEMENT PREVIOUSLY RECORDED. Recorded Dec 30, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: R2 SOLUTIONS LLC
Reel/Frame 054981/0377 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Jul 8, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
Reel/Frame 053654/0254 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2020
From: EXCALIBUR IP, LLC
To: R2 SOLUTIONS LLC
Reel/Frame 053459/0059 →
PATENT SECURITY AGREEMENT Recorded Jun 5, 2020
From: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MERTON ACQUISITION HOLDCO LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 052853/0153 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2016
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 038950/0592 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2016
From: EXCALIBUR IP, LLC
To: YAHOO! INC.
Reel/Frame 038951/0295 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2016
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 038383/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 10, 2008
From: SINGH, VIKASH
To: YAHOO! INC.
Reel/Frame 021219/0889 →
Continuity (1)
Related Publication 20100010960A1 · Jan 14, 2010