Pipelineable and parallelizable streaming parsers for querying structured data-interchange information

US12130820B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12130820-B2
Application numberUS-202218055137-A
CountryUS
Kind codeB2
Filing dateNov 14, 2022
Priority dateOct 2, 2019
Publication dateOct 29, 2024
Grant dateOct 29, 2024

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A computing system includes a processor and memory. The memory includes instruction code that causes the processor to generate first and second parser instances and associate the first parser and the second parser with respective first and second search queries. The processor controls the first parser to repeatedly obtain data from the data stream in blocks until the first parser finishes identifying elements in the data stream associated with its search path. The processor controls the second parser to repeatedly obtain blocks from the first parser when the blocks obtained by the first parser have not been searched by the second parser, and controls the second parser to obtain blocks from the data stream when the blocks obtained by the first parser have been searched by the second parser and the first parser has finished searching.

First claim

Opening claim text (preview).

What is claimed is: 1. A system, comprising: a processor; and a non-transitory memory, accessible by the processor and storing instructions that, when executed by the processor, cause the processor to perform operations comprising: associating a first parser with a first search query according to a first association; associating a second parser with a second search query according to a second association; searching, via the first parser, blocks of data of a data stream for a first set of elements based on the first search query and the first association; providing, via the first parser, the blocks of data to the second parser, and searching, via the second parser, the blocks of data for a second set of elements based on the second search query and the second association, wherein the first set of elements is different from the second set of elements, and wherein the second parser is configured to (i) obtain the blocks of data from the first parser when the blocks of data obtained by the first parser have not been searched by the second parser, and (ii) obtain the blocks of data from the data stream when the first parser has finished searching and all of the blocks of data obtained by the first parser have been searched by the second parser; and storing the first set of elements and the second set of elements in the non-transitory memory. 2. The system of claim 1 , wherein the operations comprise: receiving the first search query and the second search query; and in response to receiving the first search query and the second search query: generating the first parser; and generating the second parser. 3. The system of claim 1 , wherein the first parser and the second parser are controlled by the processor to search a particular block of data from the blocks of data simultaneously. 4. The system of claim 1 , wherein the second parser is configured to recurringly obtain the blocks of data from the first parser and recurringly obtain the blocks from the data stream. 5. The system of claim 1 , wherein the second set of elements associated with the second search query occur in the data stream before the first set of elements associated with the first search query. 6. The system of claim 1 , wherein the instructions cause the processor to perform operations that include: associating a third parser with a third search query according to a third association; providing, via the second parser, the blocks of data to the third parser; and searching, via the third parser, the blocks of data for a third set of elements based on the third search query and the third association, wherein the third set of elements is different than the first set of elements and the second set of elements. 7. The system of claim 6 , wherein the instructions cause the processor to perform operations that include: controlling the third parser to: (i) recurringly obtain the blocks of data from the second parser when the blocks of data obtained by the second parser have not been searched by the third parser, and (ii) recurringly obtain the blocks of data from the data stream when the first parser and the second parser have finished searching and all of the blocks of data obtained by the second parser have been searched by the third parser. 8. The system of claim 1 , wherein the instructions cause the processor to perform operations that include outputting the first set of elements found by the first parser as a first result of searching and the second set of elements found by the second parser as a second result of the searching to a database, file, or calling process implemented by the processor. 9. The system of claim 1 , wherein each element within the first set of elements is associated with a respective path, wherein the respective path corresponds to a representation of one or more objects, one or more arrays, or both, that locate a specific element within the first set of elements. 10. A method comprising: at an electronic device including a processor and a non-transitory memory: associating a first parser with a first search query according to a first association; associating a second parser with a second search query according to a second association; searching, via the first parser, blocks of data of a data stream for a first set of elements based on the first search query and the first association; providing, via the first parser, the blocks of data to the second parser, and searching, via the second parser, the blocks of data for a second set of elements based on the second search query and the second association, wherein the first set of elements is different from the second set of elements; controlling the second parser to (i) obtain the blocks of data from the first parser when the blocks of data obtained by the first parser have not been searched by the second parser, and (ii) obtain the blocks of data from the data stream when the first parser has finished searching and all of the blocks of data obtained by the first parser have been searched by the second parser; and storing the first set of elements and the second set of elements in the non-transitory memory. 11. The method of claim 10 , comprising: associating a third parser with a third search query according to a third association; providing, via the second parser, the blocks of data to the third parser; and searching, via the third parser, the blocks of data for a third set of elements based on the third search query and the third association, wherein the third set of elements is different than the first set of elements and the second set of elements. 12. The method of claim 11 , comprising: controlling the second parser to (i) recurringly obtain the blocks of data from the first parser and (ii) repeatedly obtain the blocks of data from the data stream; and controlling the third parser to (i) recurringly obtain the blocks of data from the second parser when the blocks of data obtained by the second parser have not been searched by the third parser, and (ii) repeatedly obtain the blocks of data from the data stream when the first parser and the second parser have finished searching and all of the blocks of data obtained by the second parser have been searched by the third parser. 13. The method of claim 11 , comprising: receiving the first search query, the second search query, and the third search query; and in response to receiving the first search query, the second search query, and the third search query: generating the first parser; generating the second parser; and generating the third parser. 14. The method of claim 10 , comprising outputting the first set of elements found by the first parser as a first result of searching and the second set of elements found by the second parser as a second result of the searching to a database, file, or calling process implemented by the processor. 15. The method of claim 10 , wherein each element within the first set of elements and the second set of elements is associated with a respective path, wherein the respective path corresponds to a representation of one or more objects, one or more arrays, one or more values, or any combination thereof, that locate a specific element within the first set of elements or the second set of elements. 16. An article of manufacture including a non-transitory computer-readable medium, having stored thereon program instructions that, when executed by a processor, cause the processor to perform operations comprising: associating a first parser with a first search query according to a first association; associating a second parser with a second

Assignees

Inventors

Classifications

  • Presentation of query results · CPC title

  • Data stream processing; Continuous queries · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12130820B2 cover?
A computing system includes a processor and memory. The memory includes instruction code that causes the processor to generate first and second parser instances and associate the first parser and the second parser with respective first and second search queries. The processor controls the first parser to repeatedly obtain data from the data stream in blocks until the first parser finishes ident…
Who is the assignee on this patent?
Servicenow Inc
What technology area does this patent fall under?
Primary CPC classification G06F16/24568. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 29 2024 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).