IP Library Granted Patent US 7,756,858
Granted Patent B2
US 7,756,858 · App. 11/567,676 · Granted Jul 13, 2010

Parent-child query indexing for xml databases

Assignee: Mark Logic Corporation
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 7,756,858
App. No.
11/567,676
Granted
Jul 13, 2010
Kind
B2
Abstract

A method for processing queries for a document of elements is provided. The document includes a plurality of subsections where each subsection includes at least a portion of elements in the document. The method comprises: receiving a query for a path of elements in the document of elements; determining a plurality of step queries from the query, each step query including at least a part of the path of elements; for each step query in the plurality of step queries, determining one or more subsections that include elements that correspond to a step query; and determining at least one subsection that includes the path of elements of the query. A result for the query is generated using the at least one subsection.

Claims (31)

1. A computer-implemented method for searching a document store of electronically stored structured documents and for generating a result for a query of the document store for one or more document of elements, using pre-computed step queries and pre-computed step query results stored in a computer-readable database, using a processor configured to access the computer-readable database, the method comprising:

using the processor, receiving the query, wherein the query is a computer-readable data sequence representing a path of elements in the document of elements;

using the processor, generating a plurality of step queries from the query, wherein a step query comprises a relationship between a plurality of elements determined from a part of the path of elements;

using the processor, for each of the plurality of step queries, accessing the computer-readable database and retrieving a pre-computed step query result for a step query in the plurality of step queries by querying the computer-readable database using the step query as a query to a query engine, wherein the step query corresponds to a pre-computed step query for the pre-computed step query result; and

using the processor, generating the result for the query using the step query results.

2. The method of claim 1 , wherein generating the result comprises taking the intersection of the step query results.

3. The method of claim 1 , wherein the result of the query comprises a location in the document of elements that includes the path of elements for the query.

4. The method of claim 1 , wherein the result of the query comprises the path of elements for the query.

5. The method of claim 1 , further comprising optimizing the query, wherein optimizing the query comprises generating sequences from the path of elements that interpolate the path.

6. The method of claim 1 , wherein the plurality of step queries comprise at least one of a one-step query, two-step query, three-step query, and four-step query.

7. The method of claim 1 , wherein reducing the query into the plurality of step queries comprises reducing the query into at least one two-step query.

8. The method of claim 1 , wherein reducing the query into the plurality of step queries comprises reducing the query into at least one three-step query.

9. The method of claim 1 , further comprising

computing a hash key for queries in the pre-computed step queries and plurality of step queries; and

storing the hash keys for the pre-computed step queries and the corresponding pre-computed step query results in the database.

10. The method of claim 9 , wherein retrieving the pre-computed step query result comprises using the stored hash keys for the step queries to retrieve the pre-computed step query results corresponding to the hash keys.

11. The method of claim 9 , wherein the step query results comprise a ID for one or more elements in the document of elements.

12. The method of claim 9 , further comprising post-processing the intersection of the step query results to generate the result for the query.

13. The method of claim 12 , wherein post-processing the result comprises matching each step query in the step query results to the query.

14. The method of claim 9 , wherein the relationship between the plurality of elements comprises a parent/child relationship.

15. The method of claim 9 , wherein the document of elements comprises an XML document.

16. The method of claim 9 , wherein elements in the document of elements comprise at least one of element, word, attribute, and string elements.

17. A computer-implemented method for creating a computer-readable database of step queries and step query results for a structured document of elements using a processor, the method comprising:

determining relationships between a plurality of elements from the structured document of elements:

generating step queries from the relationships;

generating step query results for the step queries, wherein a step query result for a step query

corresponds to one or more elements in the structured document of elements for the step query; and

storing the step queries and corresponding step query results in the computer-readable database, wherein the stored step query results are usable to generate a result for a main query, wherein the main query can be reduced to a plurality of step queries that correspond to the stored step queries.

18. The method of claim 17 , further comprising generating an index for the step queries, the index pointing to the corresponding step query results for each step query.

19. The method of claim 17 , wherein the step query results comprise an ID for one or more elements in the document of elements.

20. The method of claim 17 , wherein the plurality of step queries and corresponding step query results are stored in a PostingList.

Assignments (6)
CHANGE OF NAME Recorded Apr 29, 2025
From: MARKLOGIC CORPORATION
To: PROGRESS FEDERAL SOLUTIONS, INC.
Reel/Frame 071121/0160 →
RELEASE OF SECURITY INTEREST Recorded Mar 4, 2024
From: MONROE CAPITAL MANAGEMENT ADVISORS, LLC, AS ADMINISTRATIVE AGENT
To: MARKLOGIC CORPORATION
Reel/Frame 066633/0745 →
SECURITY INTEREST Recorded Oct 20, 2020
From: MARKLOGIC CORPORATION
To: MONROE CAPITAL MANAGEMENT ADVISORS, LLC, AS ADMINISTRATIVE AGENT
Reel/Frame 054115/0830 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 27, 2013
From: LINDBLAD, CHRISTOPHER; PEDERSEN, PAUL
To: CERISENT CORPORATION
Reel/Frame 029890/0525 →
MERGER Recorded Feb 27, 2013
From: CERISENT CORPORATION
To: MARK LOGIC CORPORATION
Reel/Frame 029890/0566 →
CHANGE OF NAME Recorded Feb 27, 2013
From: MARK LOGIC CORPORATION
To: MARKLOGIC CORPORATION
Reel/Frame 029891/0783 →
Continuity (3)
Continuation 1046201900 · Jun 13, 2003
Provisional Application 6038906600 · Jun 13, 2002
Related Publication 20070168327A1 · Jul 19, 2007