DETAILED ACTION
Claims 1-24 are pending. Claims 1, 8, 15, and 21 have been amended. Claims 1-24 are rejected.
The instant application has PRO 63/658,958 filed on 06/12/2024.
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim(s) 1-7 is/are rejected under 35 U.S.C. 103 as being unpatentable over Li et al., Patent Application Publication No. 2018/0314722 (hereinafter Li) in view of Patent Application Publication No. 2016/0253322 (hereinafter Qingsong Li) and Jeffery et al., United States Patent No. 9,235,652 (hereinafter Jeffery).
Regarding claim 1, Li teaches:
A computer-implemented method for deriving array subscripts from nested ranges in a JSON structure (Li Paragraph [0056], The parser also allows arbitrary nesting of arrays and objects in path expressions), comprising:
loading and parsing JSON data to convert a JSON string of the JSON data into a data structure (Li Paragraph [0029], resulting parser is beneficial for analytical applications on raw JSON data, Paragraph [0053], JSON data 325 from external sources are loaded into the index builder 330), wherein the JSON data includes one or more objects (Li Paragraph [0056], The parser also allows arbitrary nesting of arrays and objects in path expressions), one or more arrays (Li Paragraph [0056], The parser also allows arbitrary nesting of arrays and objects in path expressions), and/or one or more primitive values (Li Paragraph [0043], Five of the six records in dataset 200 contain three primitive fields (id, state, city), one array field (categories), and one nested field (attributes) at the root level);
traversing the data structure to identify one or more nested ranges within the one or more objects (Li Paragraph [0056], The parser also allows arbitrary nesting of arrays and objects in path expressions), the one or more arrays (Li Paragraph [0056], The parser also allows arbitrary nesting of arrays and objects in path expressions), and/or the one or more primitive values (Li Paragraph [0043], Five of the six records in dataset 200 contain three primitive fields (id, state, city), one array field (categories), and one nested field (attributes) at the root level);
storing a start position and an end position of the one or more nested ranges (Li Paragraph [0084], recursively call third algorithm 900 to find the colon positions of the nested object at the next level in case of an object field. In the latter case, the positions of the current colon and the immediately next colon are used as the start and end positions passed into the method, respectively);
mapping one or more array indices to the corresponding one or more individual array element ranges (Li Paragraph [0063], structural index maps logical to physical locations of fields in a JSON object), wherein the mapping includes correlating at least one array element of the one or more arrays to the one or more individual array element ranges (Li Paragraph [0087], at least one queried field is an array, leveled COMMA bit maps may be included in the structured index);
indexing the JSON data into one or more addressable segments (Li Paragraph [0027], When a query for a field is received, the logical index for the field is used in conjunction with the structural index to obtain a physical address of the field in the JSON file and allows direct access to the field to respond with the correct queried data), each segment of the one or more addressable segments corresponding to a portion of the JSON structure defined by the one or more nested ranges (Li Paragraph [0026], The structural index may be created for each JSON file received, or may be selected from a learned structural index from a previous JSON file if that file is likely to have a similar or same structure, such as multiple files received from a same source related to similar data); and
sending one or more queries to a database (Li Paragraph [0087], at least one queried field is an array, leveled COMMA bit maps may be included in the structured index), wherein the one or more queries include at least one of the one or more array indices and the correlated at least one array element (Li Paragraph [0087], at least one queried field is an array, leveled COMMA bit maps may be included in the structured index).
Li does not expressly disclose:
extracting one or more element ranges by dissecting the one or more nested ranges, including one or more array ranges, into one or more individual array element ranges based upon position information, wherein the position information indicates a specific index or location within the one or more arrays that defines an element placement of at least one element relative to one or more other elements;
However, Qingsong Li teaches:
extracting one or more element ranges by dissecting the one or more nested ranges (Qingsong Li Paragraph [0046], extracting a hash code range corresponding to descendants of the given managed object from the allocated code range, based on a first hash code generated from the given managed object's distinguished name according to the first hash function; and determining the start hash code as the start of the extracted hash code range, and the end hash code as the end of the extracted hash code range), including one or more array ranges (Qingsong Li Paragraph [0046], extracting a hash code range corresponding to descendants of the given managed object from the allocated code range, based on a first hash code generated from the given managed object's distinguished name according to the first hash function; and determining the start hash code as the start of the extracted hash code range, and the end hash code as the end of the extracted hash code range), into one or more individual array element ranges based upon position information (Qingsong Li Paragraph [0046], extracting a hash code range corresponding to descendants of the given managed object from the allocated code range, based on a first hash code generated from the given managed object's distinguished name according to the first hash function; and determining the start hash code as the start of the extracted hash code range, and the end hash code as the end of the extracted hash code range (the start and end ranges are considered the position information)), wherein the position information indicates a specific index or location within the one or more arrays that defines an element placement of at least one element relative to one or more other elements (Qingsong Li Paragraph [0046], extracting a hash code range corresponding to descendants of the given managed object from the allocated code range, based on a first hash code generated from the given managed object's distinguished name according to the first hash function; and determining the start hash code as the start of the extracted hash code range, and the end hash code as the end of the extracted hash code range, Paragraph [0103], The relocation operation re-computes the index for each key-value pair against the length of the new slot array, and copies the value from the original slot array to the new index position in the new slot array);
The claimed invention and Qingsong Li are from the analogous art of array systems. It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention having the teachings of Li in view of Qingsong Li to have combined Li in view of Qingsong Li. Qingsong Li teaches providing a new data structure which provides an efficient and high performance search method to support all the three types of retrieval requests (Paragraph 32).
Li in view of Qingsong Li does not expressly disclose:
standardizing the JSON data by two or more of (i) normalizing one or more JSON keys corresponding to the JSON data, (ii) handling one or more missing or null values of the JSON data, (iii) detecting and correcting a duplicated entry and a format discrepancy of the JSON data, and (iv) converting one or more data types of the JSON data;
However, Jeffery teaches:
standardizing the JSON data by two or more of (i) normalizing one or more JSON keys corresponding to the JSON data (Jeffery Column 12 Lines 20-30, format normalizing—taking a structured record and converting it to a standard format (e.g., json, xml); schema normalizing—converting source-specific keys into a common schema by, for example, simple key mapping; value normalizing—applying value-specific rules to each value to clean/standardize the values), (ii) handling one or more missing or null values of the JSON data, (iii) detecting and correcting a duplicated entry and a format discrepancy of the JSON data, and (iv) converting one or more data types of the JSON data (Jeffery Column 12 Lines 20-30, format normalizing—taking a structured record and converting it to a standard format (e.g., json, xml); schema normalizing—converting source-specific keys into a common schema by, for example, simple key mapping; value normalizing—applying value-specific rules to each value to clean/standardize the values);
The claimed invention and Jeffery are from the analogous art of systems using JSON files. It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention having the teachings of Li in view of Qingsong Li and Jeffery to have combined Li in view of Qingsong Li and Jeffery. Jeffery teaches optimizing a data integration process by teaching a system that can be configured to represent the processing, for data integration, of a data record that includes attribute, and to use that representation to determine an optimal processing of that data record (Column 1 Lines 45-56).
Regarding claim 2, Li in view of Qingsong Li and Jeffery further teaches:
The computer-implemented method of claim 1, wherein loading and parsing the JSON data comprises: reading the JSON data from a file or an application programming interface (API) (Li Paragraph [0056], The API 320 may be tailored to the design goals of the parser, Paragraph [0029], resulting parser is beneficial for analytical applications on raw JSON data, Paragraph [0053], JSON data 325 from external sources are loaded into the index builder 330); and
determining that the JSON data is in a valid format by performing a validation check to assess adherence to JSON syntax (Li Paragraph [0056], the API of the parser iterates over only the required fields).
Regarding claim 3, Li in view of Qingsong Li and Jeffery further teaches:
The computer-implemented method of claim 1, wherein traversing the data structure comprises: utilizing a recursive function for handling one or more JSON element types that include one or more of the one or more objects, the one or more arrays, or the one or more primitive values (Li Paragraph [0033], Further detail of one example data interchange format that may be parsed by the parser is JSON (JavaScript Object Notation), which is a lightweight, text-based, language-independent data interchange format. The JSON format can be recursively defined as follows); and
storing metadata for identification of the one or more nested ranges within the JSON data (Li Paragraph [0059], the parser structural index is similar to metadata information embedded in some binary formats such as Parquet, but it is built on-the-fly as a side-effect of parsing), wherein the metadata includes one or more keys for the one or more objects and the one or more array indices (Li Paragraph [0064], the field name and value are placed immediately before and after the colon character. Thus, it is efficient to access both the key and the value, starting from the position of the colon character).
Regarding claim 4, Li in view of Qingsong Li and Jeffery further teaches:
The computer-implemented method of claim 1, wherein extracting the one or more element ranges comprises: analyzing the at least one element of the one or more arrays to determine a position range of the at least one element (Li Paragraph [0003], obtaining a dataset having a schema-free data exchange format having multiple fields of data at different physical positions in the dataset);
storing the position range of the at least one element (Li Paragraph [0025], the exact position of a JSON field in a JSON record of a specific structure, a parser may look at a few kinds of characters only; e.g., the colon “:” character which delimits fields); and
mapping associated array indices to corresponding position ranges within the one or more arrays (Li Paragraph [0050], The parser may then obtain or build structural indices on JSON text, to map logical locations to physical locations. Building a structure index may be done on the fly during parsing).
Regarding claim 5, Li in view of Qingsong Li and Jeffery further teaches:
The computer-implemented method of claim 1, wherein mapping the one or more array indices to the corresponding one or more individual array element ranges comprises: sorting the one or more nested ranges hierarchically to reflect a nest structure of the JSON data (Li Paragraph [0089], field indices of top-level fields of an object are independent of the sizes of these fields and the hierarchical structure of nested fields).
Regarding claim 6, Li in view of Qingsong Li and Jeffery further teaches:
The computer-implemented method of claim 1, wherein utilizing the mapped one or more array indices to the corresponding one or more individual array element ranges comprises: utilizing one or more functions to locate or retrieve the at least one element (Li Paragraph [0117], obtaining a pattern tree having multiple patterns identifying speculative positions in the dataset a field is located, wherein the pattern tree is derived from a partial set of training data obtained from the dataset).
Regarding claim 7, Li in view of Qingsong Li and Jeffery further teaches:
The computer-implemented method of claim 1, further comprising: validating the extracted element ranges against predefined schema (Li Paragraph [0088], Although the basic parsing method previously described outperforms conventional FSM-based solutions, it still retrieves and verifies all field names in a record, which may limit performance. Speculation allows for prediction of the logical locations of required fields based on previously seen patterns, and only retrieve fields at the speculated or predicted locations, which then need to be verified).
Claim(s) 8-14 and 21-24 is/are rejected under 35 U.S.C. 103 as being unpatentable over Li in view of Perkins et al., Patent Application Publication No. 2019/0034540 (hereinafter Perkins), Kapoor et al., Patent Application Publication No. 2023/0328086 (hereinafter Kapoor), and Jeffery.
Regarding claim 8, Li teaches:
A computer-implemented method for generating a relational structure from a JSON data structure (Li Paragraph [0056], The parser also allows arbitrary nesting of arrays and objects in path expressions), comprising:
loading and parsing JSON data to convert a JSON string into a hierarchical data structure (Li Paragraph [0029], resulting parser is beneficial for analytical applications on raw JSON data, Paragraph [0053], JSON data 325 from external sources are loaded into the index builder 330), wherein the JSON data includes one or more data elements (Li Paragraph [0056], The parser also allows arbitrary nesting of arrays and objects in path expressions);
traversing the JSON data structure to identify one or more ranges Li Paragraph [0056], The parser also allows arbitrary nesting of arrays and objects in path expressions), which include a start position and an end position (Li Paragraph [0084], recursively call third algorithm 900 to find the colon positions of the nested object at the next level in case of an object field. In the latter case, the positions of the current colon and the immediately next colon are used as the start and end positions passed into the method, respectively), of the one or more data elements including one or more objects, one or more arrays (Li Paragraph [0056], The parser also allows arbitrary nesting of arrays and objects in path expressions), and one or more primitive values (Li Paragraph [0043], Five of the six records in dataset 200 contain three primitive fields (id, state, city), one array field (categories), and one nested field (attributes) at the root level);
storing and utilizing the mapped one or more hierarchical identified nested ranges and the relational schema for querying (Li Paragraph [0089], field indices of top-level fields of an object are independent of the sizes of these fields and the hierarchical structure of nested fields, Paragraph [0024], The parser may receive a query, and utilize the structural index to find data in fields referenced by the query), retrieval, and manipulation of the one or more data elements based upon the corresponding mapped one or more hierarchical identified nested ranges (Li Paragraph [0089], field indices of top-level fields of an object are independent of the sizes of these fields and the hierarchical structure of nested fields).
Li does not expressly disclose:
mapping the one or more hierarchical identified nested ranges to a relational schema,
wherein the mapping includes defining one or more relational tables and one or more corresponding relational table relationships based upon the identified ranges;
dynamically adjusting the mapping within the one or more relational tables and the one or more corresponding relational table relationships based upon relational database principles; and
However, Perkins teaches:
mapping the one or more hierarchical identified nested ranges to a relational schema (Perkins Paragraph [0085], there are often many different data models in use, just as one could have multiple relational database schemas in use for different relational databases, Paragraph [0102], datetime extractor 922 outputs a datetime range 932),
wherein the mapping includes defining one or more relational tables and one or more corresponding relational table relationships based upon the identified ranges (Perkins Paragraph [0085], there are often many different data models in use, just as one could have multiple relational database schemas in use for different relational databases, Paragraph [0102], datetime extractor 922 outputs a datetime range 932, Paragraph [0084], translated into nomenclature for relational databases of tables having rows and columns);
dynamically adjusting the mapping within the one or more relational tables and the one or more corresponding relational table relationships based upon relational database principles (Perkins Paragraph [0130], By analyzing semantic relationships between term mappings, the relationship analyzer 884 builds a parse tree 730 in FIG. 7A that is made available to the query flow compiler 129, Paragraph [0051], Many languages similar to SQL have been created, owing to its large install base, familiarity and flexibility of use: SQL and SQL-like interfaces allow data to be saved in many different formats but treated as if stored in a relational database comprising tables, fields and values, Paragraph [0090], It uses JSON (Javascript Object Notation) documents with dynamic schemas); and
The claimed invention and Perkins are from the analogous art of systems using JSON. It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention having the teachings of Li in view of Perkins to have combined Li in view of Perkins. Perkins teaches offering a customizable and flexible technology designed to be taught about a domain and to be able to systematically adapt to its unique needs (Paragraph 34).
Li in view of Perkins does not expressly disclose:
organizing the identified one or more ranges hierarchically to reflect a nested structure of the JSON data, wherein the organizing includes preserving at least one parent-child relationship between the one or more ranges;
However, Kapoor teaches:
organizing the identified one or more ranges hierarchically to reflect a nested structure of the JSON data (Kapoor Paragraph [0547], A FilterKey can be defined as a list of columns and/or fields in a nested structure (e.g., JSON)), wherein the organizing includes preserving at least one parent-child relationship between the one or more ranges (Kapoor Paragraph [0547], A FilterKey can be defined as a list of columns and/or fields in a nested structure (e.g., JSON), Paragraph [0404], the parent-child relationships between the processes are recursively followed);
The claimed invention and Kapoor are from the analogous art of JSON systems. It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention having the teachings of Li in view of Perkins and Kapoor to have combined Li in view of Perkins and Kapoor. Kapoor teaches reduced complexity and increase efficiency by no longer needing to convert code to execute in certain environments (Paragraph 591).
Li in view of Perkins and Kapoor does not expressly disclose:
standardizing the JSON data by two or more of (i) normalizing one or more JSON keys, (ii) handling missing or null values, (iii) detecting the JSON data by normalizing one or more JSON keys corresponding to the JSON data, (iv) handling one or more missing or null values of the JSON data, (v) detecting and correcting a duplicated entry and a format discrepancy of the JSON data, and (vi) converting one or more data types of the JSON data;
However, Jeffery teaches:
standardizing the JSON data by two or more of (i) normalizing one or more JSON keys (Jeffery Column 12 Lines 20-30, format normalizing—taking a structured record and converting it to a standard format (e.g., json, xml); schema normalizing—converting source-specific keys into a common schema by, for example, simple key mapping; value normalizing—applying value-specific rules to each value to clean/standardize the values), (ii) handling missing or null values, (iii) detecting the JSON data by normalizing one or more JSON keys corresponding to the JSON data, (iv) handling one or more missing or null values of the JSON data, (v) detecting and correcting a duplicated entry and a format discrepancy of the JSON data, and (vi) converting one or more data types of the JSON data (Jeffery Column 12 Lines 20-30, format normalizing—taking a structured record and converting it to a standard format (e.g., json, xml); schema normalizing—converting source-specific keys into a common schema by, for example, simple key mapping; value normalizing—applying value-specific rules to each value to clean/standardize the values);
The claimed invention and Jeffery are from the analogous art of systems using JSON files. It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention having the teachings of Li in view of Perkins, Kapoor, and Jeffery to have combined Li in view of Perkins, Kapoor, and Jeffery. Jeffery teaches optimizing a data integration process by teaching a system that can be configured to represent the processing, for data integration, of a data record that includes attribute, and to use that representation to determine an optimal processing of that data record (Column 1 Lines 45-56).
Regarding claim 9, Li in view of Perkins, Kapoor, and Jeffery further teaches:
The computer-implemented method of claim 8, wherein loading and parsing the JSON data comprises: reading the JSON data from a file or an application programming interface (API) (Li Paragraph [0056], The API 320 may be tailored to the design goals of the parser, Paragraph [0029], resulting parser is beneficial for analytical applications on raw JSON data, Paragraph [0053], JSON data 325 from external sources are loaded into the index builder 330); and
determining that the JSON data is in a valid format by performing a validation check to assess adherence to JSON syntax (Li Paragraph [0056], the API of the parser iterates over only the required fields).
Regarding claim 10, Li in view of Perkins, Kapoor, and Jeffery further teaches:
The computer-implemented method of claim 8, wherein traversing the JSON structure comprises: utilizing a recursive function for handling one or more JSON element types including the one or more of the objects, the one or more arrays, or the one or more primitive values (Li Paragraph [0033], Further detail of one example data interchange format that may be parsed by the parser is JSON (JavaScript Object Notation), which is a lightweight, text-based, language-independent data interchange format. The JSON format can be recursively defined as follows); and
storing metadata including one or more keys for the one or more objects and one or more array indices for identification of the one or more nested ranges within the JSON data (Li Paragraph [0059], the parser structural index is similar to metadata information embedded in some binary formats such as Parquet, but it is built on-the-fly as a side-effect of parsing, Paragraph [0064], the field name and value are placed immediately before and after the colon character. Thus, it is efficient to access both the key and the value, starting from the position of the colon character).
Regarding claim 11, Li in view of Perkins, Kapoor, and Jeffery further teaches:
The computer-implemented method of claim 8, wherein organizing the one or more identified ranges hierarchically comprises: structuring nested ranges to represent one or more nested relationships between the one or more data elements, wherein the one or more nested relationships correspond to the nested structure (Li Paragraph [0084], recursively call third algorithm 900 to find the colon positions of the nested object at the next level in case of an object field. In the latter case, the positions of the current colon and the immediately next colon are used as the start and end positions passed into the method, respectively).
Regarding claim 12, Li in view of Perkins, Kapoor, and Jeffery further teaches:
The computer-implemented method of claim 8, wherein mapping the one or more hierarchical identified nested ranges to the relational schema comprises: defining the one or more relational tables for each type of the one or more data elements, wherein the one or more tables include one or more tables for the one or more objects, the one or more arrays, or the one or more primitive values (Perkins Paragraph [0085], there are often many different data models in use, just as one could have multiple relational database schemas in use for different relational databases, Paragraph [0102], datetime extractor 922 outputs a datetime range 932, Paragraph [0084], translated into nomenclature for relational databases of tables having rows and columns); and
creating one or more relationships between the one or more tables to reflect the nested structure (Li Paragraph [0089], field indices of top-level fields of an object are independent of the sizes of these fields and the hierarchical structure of nested fields).
Regarding claim 13, Li in view of Perkins, Kapoor, and Jeffery further teaches:
The computer-implemented method of claim 8, wherein storing and utilizing the mapped one or more hierarchical identified nested ranges and the relational schema comprises: utilizing one or more functions to query and retrieve the one or more data elements based upon the one or more ranges and the mapping of the one or more hierarchical identified nested ranges to the relational schema (Li Paragraph [0024], The parser may receive a query, and utilize the structural index to find data in fields referenced by the query, Paragraph [0084], recursively call third algorithm 900 to find the colon positions of the nested object at the next level in case of an object field. In the latter case, the positions of the current colon and the immediately next colon are used as the start and end positions passed into the method, respectively).
Regarding claim 14, Li in view of Perkins, Kapoor, and Jeffery further teaches:
The computer-implemented method of claim 13, further comprising: dynamically updating the one or more ranges and the mapping of the one or more hierarchical identified nested ranges to the relational schema based upon modification to the JSON data (Perkins Paragraph [0090], MongoDB version of the query is shown at 772. MongoDB uses a documented oriented data model that is classified as a NoSQL database. It uses JSON (Javascript Object Notation) documents with dynamic schemas).
Regarding claim 21, Li teaches:
A computer-implemented method for automating a conversion of JSON data to one or more relational tables (Li Paragraph [0029], resulting parser is beneficial for analytical applications on raw JSON data, Paragraph [0053], JSON data 325 from external sources are loaded into the index builder 330 (Perkins teaches the tables)), comprising:
loading and parsing the JSON data to convert a JSON string into a hierarchical data structure (Li Paragraph [0029], resulting parser is beneficial for analytical applications on raw JSON data, Paragraph [0053], JSON data 325 from external sources are loaded into the index builder 330), wherein the JSON data includes one or more data elements (Li Paragraph [0056], The parser also allows arbitrary nesting of arrays and objects in path expressions);
executing the one or more insert statements to insert one or more rows into the one or more relational tables (Li Paragraph [0039], JSON uses backslash as an escape character for “\””, “\\”, “\/”, “\b”, “\f”, “\n”, “\r”, “\t”. A number is similar to an integer or decimal number in C or Java. Whitespace can be inserted between any pair of tokens (Li teaches inserting while Perkins teaches the relational tables)); and
verifying an accuracy of the one or more rows inserted into the one or more relational tables by cross-referencing the one or more rows with the JSON data (Li Paragraph [0088], Although the basic parsing method previously described outperforms conventional FSM-based solutions, it still retrieves and verifies all field names in a record, which may limit performance. Speculation allows for prediction of the logical locations of required fields based on previously seen patterns, and only retrieve fields at the speculated or predicted locations, which then need to be verified).
Li does not expressly disclose:
generating a relational schema by aggregating one or more columns based on one or more hierarchical layers identified within the hierarchical data structure;
generating one or more create table statements for creating the one or more relational tables based on the relational schema, wherein the relational schema of each of the one or more relational tables includes one or more data types and one or more structures derived from the JSON data, wherein the one or more columns of the relational schema are translated into one or more relational attributes that correspond to one or more respective hierarchical layers of the JSON data;
extracting one or more primitive values from one or more JSON elements within the hierarchical data structure;
aggregating the one or more primitive values to generate one or more insert statements matching the relational schema of the one or more relational table;
However, Perkins teaches:
generating a relational schema by aggregating one or more columns based on one or more hierarchical layers identified within the hierarchical data structure (Perkins Paragraph [0090], It uses JSON (Javascript Object Notation) documents with dynamic schemas, Paragraph [0084], The Splunk™ data model used for the examples given can be translated into nomenclature for relational databases of tables having rows and columns);
generating one or more create table statements for creating the one or more relational tables based on the relational schema (Perkins Paragraph [0040], The extraction is specified using SPL (the search processing language provided by Splunk™) an SQL-like structured query language based on a relational data model), wherein the relational schema of each of the one or more relational tables includes one or more data types and one or more structures derived from the JSON data (Perkins Paragraph [0090], It uses JSON (Javascript Object Notation) documents with dynamic schemas, Paragraph [0084], The Splunk™ data model used for the examples given can be translated into nomenclature for relational databases of tables having rows and columns), wherein the one or more columns of the relational schema are translated into one or more relational attributes that correspond to one or more respective hierarchical layers of the JSON data (Perkins Paragraph [0090], FIG. 7B shows the query 311 in FIG. 7A translated to executable queries in SPL, SQL and MongoDB, The equivalent query in SQL is shown at 752. SQL is a traditional database access language used for relational databases. A MongoDB version of the query is shown at 772. MongoDB uses a documented oriented data model that is classified as a NoSQL database. It uses JSON (Javascript Object Notation) documents with dynamic schemas);
extracting one or more primitive values from one or more JSON elements within the hierarchical data structure (Perkins Paragraph [0098], The POS tagged tokens are passed to the classification extraction module 874, which extracts classifications by identifying values, Paragraph [0090], It uses JSON (Javascript Object Notation) documents with dynamic schemas);
aggregating the one or more primitive values to generate one or more insert statements matching the relational schema of the one or more relational table (Perkins Paragraph [0146], Aggregate values, including statistics and counts can be calculated and stored in the metadata index to save time when queries request or make use of such values (Li teaches inserting in paragraph 39));
The claimed invention and Perkins are from the analogous art of systems using JSON. It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention having the teachings of Li in view of Perkins to have combined Li in view of Perkins. Perkins teaches offering a customizable and flexible technology designed to be taught about a domain and to be able to systematically adapt to its unique needs (Paragraph 34).
Li in view of Perkins does not expressly disclose:
organizing the hierarchical data structure by identifying one or more hierarchical boundaries within the JSON data, assigning one or more ranges to the one or more data elements, or establishing one or more parent-child relationships within the JSON data;
However, Kapoor teaches:
organizing the hierarchical data structure by identifying one or more hierarchical boundaries within the JSON data (Kapoor Paragraph [0547], A FilterKey can be defined as a list of columns and/or fields in a nested structure (e.g., JSON)), assigning one or more ranges to the one or more data elements, or establishing one or more parent-child relationships within the JSON data (Kapoor Paragraph [0547], A FilterKey can be defined as a list of columns and/or fields in a nested structure (e.g., JSON), Paragraph [0404], the parent-child relationships between the processes are recursively followed);
The claimed invention and Kapoor are from the analogous art of JSON systems. It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention having the teachings of Li in view of Perkins and Kapoor to have combined Li in view of Perkins and Kapoor. Kapoor teaches reduced complexity and increase efficiency by no longer needing to convert code to execute in certain environments (Paragraph 591).
Li in view of Perkins and Kapoor does not expressly disclose:
standardizing the JSON data by two or more (i) normalizing one or more JSON keys corresponding to the JSON data, (ii) handling one or more missing or null values of the JSON data, (iii) detecting and correcting a duplicated entry and a format discrepancy of the JSON data, and (iv) converting one or more data types of the JSON data;
However, Jeffery teaches:
standardizing the JSON data by two or more (i) normalizing one or more JSON keys corresponding to the JSON data (Jeffery Column 12 Lines 20-30, format normalizing—taking a structured record and converting it to a standard format (e.g., json, xml); schema normalizing—converting source-specific keys into a common schema by, for example, simple key mapping; value normalizing—applying value-specific rules to each value to clean/standardize the values), (ii) handling one or more missing or null values of the JSON data, (iii) detecting and correcting a duplicated entry and a format discrepancy of the JSON data, and (iv) converting one or more data types of the JSON data (Jeffery Column 12 Lines 20-30, format normalizing—taking a structured record and converting it to a standard format (e.g., json, xml); schema normalizing—converting source-specific keys into a common schema by, for example, simple key mapping; value normalizing—applying value-specific rules to each value to clean/standardize the values);
The claimed invention and Jeffery are from the analogous art of systems using JSON files. It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention having the teachings of Li in view of Perkins, Kapoor, and Jeffery to have combined Li in view of Perkins, Kapoor, and Jeffery. Jeffery teaches optimizing a data integration process by teaching a system that can be configured to represent the processing, for data integration, of a data record that includes attribute, and to use that representation to determine an optimal processing of that data record (Column 1 Lines 45-56).
Regarding claim 22, Li in view of Perkins, Kapoor, and Jeffery further teaches:
The computer-implemented method of claim 21, wherein the hierarchical data structure includes one or more nested arrays and one or more nested objects, and wherein the relational schema defines the one or more columns and one or more relationships to represent the one or more nested arrays and the one or more nested objects (Perkins Paragraph [0090], It uses JSON (Javascript Object Notation) documents with dynamic schemas, Paragraph [0084], The Splunk™ data model used for the examples given can be translated into nomenclature for relational databases of tables having rows and columns).
Regarding claim 23, Li in view of Perkins, Kapoor, and Jeffery further teaches:
The computer-implemented method of claim 21, wherein generating the one or more create table statements for creating the one or more relational tables comprises: implementing a mapping mechanism for translating the one or more columns into the one or more relational attributes (Perkins Paragraph [0090], It uses JSON (Javascript Object Notation) documents with dynamic schemas, Paragraph [0084], The Splunk™ data model used for the examples given can be translated into nomenclature for relational databases of tables having rows and columns); and
populating the one or more relational tables with data extracted from the one or more JSON elements based on the one or more relational attributes (Perkins Paragraph [0090], MongoDB version of the query is shown at 772. MongoDB uses a documented oriented data model that is classified as a NoSQL database. It uses JSON (Javascript Object Notation) documents with dynamic schemas, Paragraph [0151], classification extraction module 874 extracts classifications, such as date and time range criteria, price range criteria, etc. Any number of classifiers and extractors can be included).
Regarding claim 24, Li in view of Perkins, Kapoor, and Jeffery further teaches:
The computer-implemented method of claim 21, wherein verifying the accuracy of the one or more rows comprises: generating a report indicating one or more discrepancies between the one or more rows inserted into the one or more relational tables and the JSON data, wherein the one or more discrepancies include one or more data misalignments or one or more erroneous rows (Li Paragraph [0105], On each atomic field node accessed as indicated in line 8, the Verify( ) method is invoked at line 9 to examine if the speculated position is correct. This method first converts the speculated field index to the physical location of the field, using the structural index, and then retrieves the field name in the JSON text at the speculated position); and
updating the one or more rows to correct the one or more discrepancies (Li Paragraph [0027], the logical index for the field is used in conjunction with the structural index to obtain a physical address of the field in the JSON file and allows direct access to the field to respond with the correct queried data).
Claim(s) 15-20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Li in view of Perkins and Jeffery.
Regarding claim 15, Li teaches:
A computer-implemented method for extracting data from a JSON structure using range of rows (Li Paragraph [0056], The parser also allows arbitrary nesting of arrays and objects in path expressions), comprising:
loading and formatting JSON data to determine the JSON data is structured and indented (Li Paragraph [0029], resulting parser is beneficial for analytical applications on raw JSON data, Paragraph [0053], JSON data 325 from external sources are loaded into the index builder 330), wherein the JSON data includes one or more data elements (Li Paragraph [0056], The parser also allows arbitrary nesting of arrays and objects in path expressions);
traversing the JSON data to identify one or more ranges Li Paragraph [0056], The parser also allows arbitrary nesting of arrays and objects in path expressions), which include a start position and an end position (Li Paragraph [0084], recursively call third algorithm 900 to find the colon positions of the nested object at the next level in case of an object field. In the latter case, the positions of the current colon and the immediately next colon are used as the start and end positions passed into the method, respectively), of the one or more data elements that include one or more static elements and/or one or more array elements (Li Paragraph [0056], The parser also allows arbitrary nesting of arrays and objects in path expressions);
organizing the identified one or more ranges hierarchically to reflect a nested structure of the JSON data (Li Paragraph [0089], field indices of top-level fields of an object are independent of the sizes of these fields and the hierarchical structure of nested fields), wherein the organizing includes arranging the start position and the end position of the one or more ranges to mirror an inherent nested structure of a JSON format (Li Paragraph [0080], An input to algorithm 700 comprises Index, the structural index, start, end: the start and end positions of the targeted object level: the level of the targeted object. The output comprises c, a list of positions of the colons. c is returned at line 9 of second algorithm 800, Paragraph [0089], field indices of top-level fields of an object are independent of the sizes of these fields and the hierarchical structure of nested fields);
indexing the JSON data into one or more addressable segments (Li Paragraph [0027], When a query for a field is received, the logical index for the field is used in conjunction with the structural index to obtain a physical address of the field in the JSON file and allows direct access to the field to respond with the correct queried data), each segment of the one or more addressable segments corresponding to a portion of the JSON structure defined by the one or more hierarchically organized ranges (Li Paragraph [0026], The structural index may be created for each JSON file received, or may be selected from a learned structural index from a previous JSON file if that file is likely to have a similar or same structure, such as multiple files received from a same source related to similar data); and
utilizing one or more functions for querying and manipulating the JSON data based upon the one or more specific elements (Li Paragraph [0089], field indices of top-level fields of an object are independent of the sizes of these fields and the hierarchical structure of nested fields, Paragraph [0024], The parser may receive a query, and utilize the structural index to find data in fields referenced by the query).
Li does not expressly disclose:
accessing the one or more data elements using one or more sets of ranges, wherein the accessing includes locating and extracting one or more specific elements within the JSON data;
However, Perkins teaches:
accessing the one or more data elements using one or more sets of ranges, wherein the accessing includes locating and extracting one or more specific elements within the JSON data (Perkins Paragraph [0090], MongoDB version of the query is shown at 772. MongoDB uses a documented oriented data model that is classified as a NoSQL database. It uses JSON (Javascript Object Notation) documents with dynamic schemas, Paragraph [0151], classification extraction module 874 extracts classifications, such as date and time range criteria, price range criteria, etc. Any number of classifiers and extractors can be included);
The claimed invention and Perkins are from the analogous art of systems using JSON. It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention having the teachings of Li in view of Perkins to have combined Li in view of Perkins. Perkins teaches offering a customizable and flexible technology designed to be taught about a domain and to be able to systematically adapt to its unique needs (Paragraph 34).
Li in view of Perkins does not expressly disclose:
standardizing the JSON data by two or more of (i) normalizing one or more JSON keys corresponding to the JSON data, (ii) handling one or more missing or null values of the JSON data, (iii) detecting and corresponding a duplicated entry and a format discrepancy of the JSON data, and (iv) converting one or more data types of the JSON data;
However, Jeffery teaches:
standardizing the JSON data by two or more of (i) normalizing one or more JSON keys corresponding to the JSON data, (ii) handling one or more missing or null values of the JSON data, (iii) detecting and corresponding a duplicated entry and a format discrepancy of the JSON data, and (iv) converting one or more data types of the JSON data;
The claimed invention and Jeffery are from the analogous art of systems using JSON files. It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention having the teachings of Li in view of Perkins and Jeffery to have combined Li in view of Perkins and Jeffery. Jeffery teaches optimizing a data integration process by teaching a system that can be configured to represent the processing, for data integration, of a data record that includes attribute, and to use that representation to determine an optimal processing of that data record (Column 1 Lines 45-56).
Regarding claim 16, Li in view of Perkins and Jeffery further teaches:
The computer-implemented method of claim 15, wherein loading and formatting the JSON data comprises: reading the JSON data from a file or an application programming interface (API) (Li Paragraph [0056], The API 320 may be tailored to the design goals of the parser, Paragraph [0029], resulting parser is beneficial for analytical applications on raw JSON data, Paragraph [0053], JSON data 325 from external sources are loaded into the index builder 330); and
determining that the JSON data is in a valid format by performing a validation check to assess adherence to JSON syntax (Li Paragraph [0056], the API of the parser iterates over only the required fields).
Regarding claim 17, Li in view of Perkins and Jeffery further teaches:
The computer-implemented method of claim 15, wherein traversing the JSON data comprises: identifying the one or more static elements including one or more of one or more strings, one or more numbers, one or more booleans, or one or more null values (Li Paragraph [0039], An array is an ordered collection of values, and is represented as brackets (“[” and “]”) surrounding zero or more values, separated by commas. A value can be a string in quotes (“””), a number, true or false, null, an object, or an array); and
recording a start position and an end position of the one or more static elements (Li Paragraph [0084], recursively call third algorithm 900 to find the colon positions of the nested object at the next level in case of an object field. In the latter case, the positions of the current colon and the immediately next colon are used as the start and end positions passed into the method, respectively).
Regarding claim 18, Li in view of Perkins and Jeffery further teaches:
The computer-implemented method of claim 15, wherein traversing the JSON data comprises: identifying the one or more array elements, wherein the array elements include one or more objects, one or more nested arrays, or one or more primitive values (Li Paragraph [0043], Five of the six records in dataset 200 contain three primitive fields (id, state, city), one array field (categories), and one nested field (attributes) at the root level); and
recording a start position and an end position of each of the one or more array elements (Li Paragraph [0084], recursively call third algorithm 900 to find the colon positions of the nested object at the next level in case of an object field. In the latter case, the positions of the current colon and the immediately next colon are used as the start and end positions passed into the method, respectively).
Regarding claim 19, Li in view of Perkins and Jeffery further teaches:
The computer-implemented method of claim 15, wherein organizing the identified sets of ranges hierarchically comprises: utilizing one or more data structures that include one or more lists or one or more dictionaries to maintain the organized sets of ranges hierarchically (Perkins Paragraph [0166], One or more dictionaries can store the semantically valid search parameter values for data sources, field names and values stored in fields having the field names).
Regarding claim 20, Li in view of Perkins and Jeffery further teaches:
The computer-implemented method of claim 15, wherein accessing the one or more elements using the sets of ranges comprises: utilizing one or more algorithms to navigate the nested structure based upon the one or more ranges to extract the one or more specific elements (Perkins Paragraph [0151], classification extraction module 874 extracts classifications, such as date and time range criteria, price range criteria, etc. Any number of classifiers and extractors can be included).
Response to Arguments
Applicant's arguments filed 12/22/205 have been fully considered and they are either persuasive or they are not persuasive. A detailed explanation is provided below.
Applicant’s arguments, see page 14-15, filed 12/22/2025, with respect to the rejection(s) of claim(s) 1-24 under 35 U.S.C. 103 regarding the Mueller reference have been fully considered and are persuasive. Therefore, the rejection has been withdrawn. However, upon further consideration, a new ground(s) of rejection is made in view of the amendment and the newly cited Jeffery reference. Jeffery teaches normalizing and converting JSON data as shown in the above rejection.
On page 15, Applicant argues that Mueller does not disclose the indexing limitation. Applicant argues that different pages of Mueller were used for this limitation but the Examiner disagrees. The Li reference was used to teach this limitation. Furthermore, the rejection has been updated to show how the newly cited Jeffery reference teaches the normalizing and converting. Li teaches a logical index for a field is used in conjunction with the structural index to obtain a physical address of the field in the JSON file (Paragraph 27). This shows that Li teaches indexing the address to one or more addressable segments. Li further teaches a structural index may be selected from a learned structural index from a previous JSON file if that file is likely to have a similar or same structure (Paragraph 26). This shows that Li teaches the nested ranges as the JSON file is selected from a previous JSON file. Applicant states that agreement was reached during the interview that the prior art does not disclose this limitation, the Examiner stated during the interview that further consideration is required but did not reach this agreement. Therefore, Li teaches this limitation.
On pages 15-16, Applicant argues that the references do not teach or suggest the dynamically limitation, the Examiner disagrees. Perkins teaches analyzing semantic relationships between term mappings (Paragraph 130). Perkins further teaches treating data as if it was stored in a relational database comprising tables, fields, and values (Paragraph 51). These teachings show that Perkins teaches mappings along with relational tables and a relational database. Perkins further teaches using JSON documents with dynamic schemas (Paragraph 90). This shows the dynamic portion of the limitation. Applicant states that agreement was reached during the interview that the prior art does not disclose this limitation, the Examiner stated during the interview that further consideration is required but did not reach this agreement. Therefore, Perkins teaches this limitation.
On page 16, Applicant argues that the references do not teach or suggest the organizing limitation, the Examiner disagrees. Kapoor teaches using a FilterKey that can be defined as a list of columns and/or fields in a rest structure (e.g., JSON) (Paragraph 547). This shows that Kapoor teaches the nested structure. Kapoor further teaches a parent-child relationship (Paragraph 404). This shows that organizing includes preserving at least one parent-child relationship. Applicant states that agreement was reached during the interview that the prior art does not disclose this limitation, the Examiner stated during the interview that further consideration is required but did not reach this agreement. Therefore, Kapoor teaches this limitation.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. Chen et al., Patent Application Publication No. 2023/0281339 (hereinafter Chen). Chen teaches a normalized data format to which tenant data is converted may be JSON (Paragraph 46). Chen further teaches normalized and standardized data formats such as JSON line format (Paragraph 81). This shows that Chen is analogous art as both Chen and the claimed invention are directed to the JSON data format.
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to DUSTIN D EYERS whose telephone number is (408)918-7562. The examiner can normally be reached Monday-Thursday 9:00am-7:00pm ET.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Amy Ng can be reached at (571)270-1698. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/DUSTIN D EYERS/ Examiner, Art Unit 2164
/AMY NG/ Supervisory Patent Examiner, Art Unit 2164