IP Library › Granted Patent US 10,817,490
Granted Patent B2
US 10,817,490 · App. 15/582,313 · Granted Oct 27, 2020

Parser for schema-free data exchange format

Inventors: Yinan Li (Redmond, WA); Nikolaos Romanos Katsipoulakis (Pittsburgh, PA); Badrish Chandramouli (Redmond, WA); Jonathan D Goldstein (Woodinville, WA); Donald Kossmann (Kirkland, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F16/2237G06F16/2365G06F16/2455G06F16/258G06F16/81G06F40/221
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 10,817,490
App. No.
15/582,313
Granted
Oct 27, 2020
Kind
B2
Abstract

A method includes obtaining a query containing at least one field from which data is being queried, obtaining a dataset having a schema-free data exchange format having multiple fields of data at different physical positions in the dataset, and parsing the dataset by obtaining a structural index that maps logical locations of fields to physical locations of the fields of the dataset, accessing the structural index with logical locations of the fields that index to the physical locations, and providing data from the fields based on the physical locations responsive to the query.

Claims (47)

1. A method comprising:

obtaining a query containing at least one character delimited field from which data is being queried;

obtaining a dataset having a schema-free data exchange format having multiple fields of data at different physical positions in the dataset; and

parsing the dataset by:

obtaining a structural index that maps logical locations of the fields of data to physical locations of the fields of the dataset;

accessing the structural index with logical locations of the fields that index to the physical locations; and

providing data from the fields based on the physical locations responsive to the query wherein the structural index comprises character separated bit maps representing positions of separation characters in the dataset corresponding to fields of objects in the dataset and separating keys from values in key/value pairs in the fields.

2. The method of claim 1 wherein the physical location of a field is represented by a colon placed between a field key and a value of the field and wherein the schema-free data exchange format is a JSON (Java Script Object Notation) format.

3. The method of claim 1 wherein the query identifies a set of required fields, and wherein the structural index is obtained as a function of the set of required fields.

4. The method of claim 3 wherein the separation characters comprises colons.

5. The method of claim 3 wherein the structural index comprises a leveled comma bit map responsive to an array being presented and queried in the dataset to represent where each element of an array begins and ends.

6. The method of claim 1 wherein accessing the structural index is performed as a function of projections or filters corresponding to the query.

7. A method comprising:

obtaining a query containing at least one field from which data is being queried;

obtaining a dataset having a schema-free data exchange format having multiple fields of data at different physical positions in the dataset; and

parsing the dataset by:

obtaining a structural index that maps logical locations of the fields of data to physical locations of the fields of the dataset;

accessing the structural index with logical locations of the fields that index to the physical locations;

providing data from the fields based on the physical locations responsive to the query;

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;

wherein accessing the structural index with logical locations of the fields that index to the physical locations provides a location of the field; and

performing a verify operation to determine if a name of the field is the same as a desired field name.

8. The method of claim 7 and further comprising:

responsive to the name of the field being the same as the desired field name, returning the value of the field.

9. The method of claim 7 and further comprising:

responsive to the name of the field not being the same as the desired field name, repeating accessing and verifying using a different pattern in the pattern tree.

10. The method of claim 9 and further comprising repeating the operations of claim 8 until: either the desired field and value is provided, or the desired field is not found and the entire data structure is parsed to identify the physical location of the desired field.

11. A machine readable storage device having instructions for execution by a processor of a machine to cause the processor to perform operations to perform a method, the operations comprising:

obtaining a query containing at least one character delimited field from which data is being queried;

obtaining a dataset having a schema-free data exchange format having multiple fields of data at different physical positions in the dataset; and

parsing the dataset by:

obtaining a structural index that maps logical locations of the fields of data to physical locations of the fields of the dataset wherein the structural index comprises a character bit map representing positions of characters in the dataset corresponding to fields of the dataset;

accessing the structural index with logical locations of the fields that index to the physical locations; and

providing data from the fields based on the physical locations responsive to the query.

12. The device of claim 11 wherein the physical location of a field is represented by a colon placed between a field key and a value of the field and wherein the schema-free data exchange format is a JSON (Java Script Object Notation) format.

13. The device of claim 11 wherein the query identifies a set of required fields, and wherein the structural index is obtained as a function of the set of required fields.

14. The device of claim 13 wherein the structural index comprises leveled colon bit maps representing positions of colons in the dataset corresponding to fields of objects in the dataset and separating keys from values in key/value pairs in the fields.

15. The device of claim 13 wherein the structural index comprises a leveled comma bit map responsive to an array being presented and queried in the dataset to represent where each element of an array begins and ends.

16. The device of claim 11 and further comprising:

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;

wherein accessing the structural index with logical locations of the fields that index to the physical locations provides a location of the field; and

performing a verify operation to determine if a name of the field is the same as a desired field name.

17. The device of claim 16 and further comprising: responsive to the name of the field being the same as the desired field name, returning the value of the field.

18. The device of claim 16 and further comprising: responsive to the name of the field not being the same as the desired field name, repeating accessing and verifying using a different pattern in the pattern tree.

19. The device of claim 18 and further comprising repeating the operations of claim 8 until:

either the desired field and value is provided, or the desired field is not found and the entire data structure is parsed to identify the physical location of the desired field.

20. The device of claim 11 wherein accessing the structural index is performed as a function of projections or filters corresponding to the query.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2017
From: LI, YINAN; KATSIPOULAKIS, NIKOLAOS ROMANOS; CHANDRAMOULI, BADRISH; GOLDSTEIN, JONATHAN D; KOSSMANN, DONALD
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 043892/0617 →
Continuity (1)
Related Publication 20180314722A1 · Nov 1, 2018
Cited By (2)
US 12,461,710 US 12,504,910