IP Library Granted Patent US 8,078,645
Granted Patent B2
US 8,078,645 · App. 12/170,025 · Granted Dec 13, 2011

Operations on 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,645
App. No.
12/170,025
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 (39)

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

traversing through a data stream containing a plurality of name-value pairs organized in a multi-level nested data structure; and

for each name-value pair encountered in the multi-level nested data structure,

if the name-value pair is located at two levels outside an innermost level, then constructing a new table as a current table corresponding to the name-value pair,

if the name-value pair is located at one level outside the innermost level, then constructing a new row within the current table as a current row corresponding to the name-value pair, and

if the name-value pair is located at the innermost level, then adding the name-value pair to the current row of the current table as a field.

2. A method as recited in claim 1 , wherein the multi-level nested data structure is represented as a hierarchical tree structure, such that a leaf node of the tree structure corresponds to a name-value pair located at the innermost level, a parent node of a leaf node corresponds to a name-value pair located at one level outside the innermost level, and a grandparent node of a leaf node corresponds to a name-value pair located at two levels outside the innermost level.

3. A method as recited in claim 1 , wherein the data stream complies with XML syntax specification.

4. A method as recited in claim 3 , wherein a name-value pair corresponds to an XML element having a start tag, an end tag, and data enclosed by the start tag and the end tag, such that the name in the name-value pair corresponds to the tag name of the XML element and the value in the name-value pair corresponds to the data enclosed by the start tag and the end tag of the XML element.

5. A method as recited in claim 3 , further comprising:

ignoring data contained in the data stream that is not an XML element.

6. A method as recited in claim 1 , wherein the data stream complies with JSON syntax specification.

7. A method as recited in claim 6 , wherein a name-value pair corresponds to a pair of data separated by a colon (“:”), such that the name in the name-value pair corresponds to the data located on the left side of the colon and the value in the name-value pair corresponds to the data located on the right side of the colon.

8. A method as recited in claim 1 , wherein traversing through the data stream employs a depth-first recursive algorithm.

9. A method as recited in claim 1 , further comprising:

for each name-value pair encountered that is located at two levels outside the innermost level, determining a total size of data nested within the name-value pair; and

selecting the table corresponding to the name-value pair located at two levels outside the innermost level that has the largest total size of data nested within the name-value pair.

10. A method as recited in claim 1 , further comprising:

discarding each name-value pair encountered that is located at more than two levels outside the innermost level.

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

traversing through a plurality of data elements organized in a multi-level nested data structure and represented using a predefined syntax, wherein each data element includes a name portion and a value portion; and

for each data element encountered in the multi-level nested data structure, if the data element is located at two levels outside an innermost level, then constructing a new table as a current table corresponding to the data element,

if the data element is located at one level outside the innermost level, then constructing a new row within the current table as a current row corresponding to the data element, and

if the data element is located at the innermost level, then adding the data element to the current row of the current table as a field, wherein the field has a name corresponding to the name portion of the data element and a value corresponding to the value portion of the data element.

12. A method as recited in claim 11 , wherein traversing through the plurality of data elements does not rely on a schema of the syntax used to represent the data elements.

13. A method as recited in claim 11 , further comprising:

for each data element encountered that is located at two levels outside the innermost level, determining a total size of data nested within the data element; and

selecting the table corresponding to the data element located at two levels outside the innermost level that has the largest total size of data nested within the name-value pair.

14. A method as recited in claim 11 , further comprising:

discarding each data element encountered that is located at more than two levels outside the innermost level.

15. A method as recited in claim 11 , wherein the value portion of each data element that is located not at the innermost level is another data element.

16. 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:

traversing through a data stream containing a plurality of name-value pairs organized in a multi-level nested data structure; and

for each name-value pair encountered in the multi-level nested data structure,

if the name-value pair is located at two levels outside an innermost level, then constructing a new table as a current table corresponding to the name-value pair,

if the name-value pair is located at one level outside the innermost level, then constructing a new row within the current table as a current row corresponding to the name-value pair, and

if the name-value pair is located at the innermost level, then adding the name-value pair to the current row of the current table as a field.

17. The medium of claim 16 , wherein the data stream is represented using a predefined syntax, and traversing through the data stream does not rely on a schema of the predefined syntax.

18. The medium of claim 16 , wherein the information that, when read by the machine, causes the machine to perform traversing through the data stream includes a depth-first recursive algorithm that determines whether and where a name-value pair is placed in a table according to a location of the name-value pair within the data structure.

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/0840 →
Continuity (1)
Related Publication 20100011013A1 · Jan 14, 2010