Operations of multi-level nested data structure
First Claim
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.
9 Assignments
0 Petitions
Accused Products
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.
-
Citations
17 Claims
-
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. - View Dependent Claims (4)
-
-
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.
-
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. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
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. - View Dependent Claims (16, 17)
-
Specification