IP Library Granted Patent US 8,862,611
Granted Patent B2
US 8,862,611 · App. 13/170,937 · Granted Oct 14, 2014

Bottom-up query processing scheme for XML twigs with arbitrary boolean predicates

Inventors: Sumit Kumar Bose (Delhi, IN); Rashi Malviya (Allahabad, IN)
Assignee: Infosys Limited
G06F17/30938
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 8,862,611
App. No.
13/170,937
Granted
Oct 14, 2014
Kind
B2
Abstract

Systems, methods, and computer-readable code for processing queries for XML twigs using bottom-up processing include: receiving, by a computing device, a query XML twig including at least one sub-twig; determining whether an element in an XML tree is a root element of at least one sub-twig of the query XML twig, evaluating an arbitrary Boolean operation in the at least one sub-twig; populating a logic block if the element is a root element of the at least one sub-twig; inserting the element into an appropriate stack of a hierarchical stack if the element is not a root element of the at least one sub-twig; evaluating whether the element contributes to finding results of the query; discarding the element if the element does not contribute to finding results of the query; and determining whether the element is the root of the query XML twig.

Claims (48)

1. A computer-implemented method for processing queries for XML twigs using bottom-up processing, the method comprising:

receiving, by a computing device, a plurality of query XML twigs, each query XML twig including at least one sub-twig, each sub-twig including at least one element;

evaluating at least one time an arbitrary Boolean operation in the at least one sub-twig, evaluating at least one other time a different arbitrary Boolean operation in the at least one sub-twig, the arbitrary Boolean operation including at least once a primary Boolean predicate and at least one other time a derived Boolean predicate;

determining that at least one element in an XML tree is a root element of at least one sub-twig of the plurality of query XML twigs;

in response to determining that at least one element in the XML tree is a root element, populating a logic block, the logic block comprising one or more stack trees including at least one Boolean element, the Boolean element being a data structure configured for evaluating the predicate logic of the arbitrary Boolean operator, the logic block being configured to maintain existing structural relationships between different XML tree elements of various queries while the arbitrary Boolean operation is satisfied;

inserting the element into an appropriate stack of a hierarchical stack;

evaluating that at least one element contributes to finding results of the query;

discarding at least one element that does not contribute to finding results of the query;

determining that at least one element is the root of the query XML twig; and

in response to determining that at least one element is the root of the query XML twig, dissociating the logic block for evaluating the predicate logic of the arbitrary Boolean operator from a stack used to store the elements and return twig results.

2. The method of claim 1 , further comprising:

accessing the XML tree;

building a stack structure configured for identifying the query XML twig in the XML tree, the stack structure comprising the logic block.

3. The method of claim 1 , wherein a region encoding of the Boolean element is set as a region encoding of the element.

4. The method of claim 1 , wherein the Boolean element stores logic that incorporates the element but does not store the element.

5. A system for processing queries for XML twigs using bottom-up processing, the system comprising:

a memory; and

a processor operatively coupled to the memory, the processor configured to perform the steps of:

receiving a plurality of query XML twigs, each query XML twig including at least one sub-twig, each sub-twig including at least one element;

evaluating at least one time an arbitrary Boolean operation in the at least one sub-twig, evaluating at least one other time a different arbitrary Boolean operation in the at least one sub-twig, the arbitrary Boolean operation including at least once a primary Boolean predicate and at least one other time a derived Boolean predicate;

determining that at least one element in an XML tree is a root element of at least one sub-twig of the plurality of query XML twigs;

in response to determining that at least one element in the XML tree is a root element, populating a logic block, the logic block comprising one or more stack trees including at least one Boolean element, the Boolean element being a data structure configured for evaluating the predicate logic of the arbitrary Boolean operator, the logic block being configured to maintain existing structural relationships between different XML tree elements of various queries while the arbitrary Boolean operation is satisfied;

inserting the element into an appropriate stack of a hierarchical stack;

evaluating that at least one element contributes to finding results of the query;

discarding at least one element that does not contribute to finding results of the query;

determining that at least one element is the root of the query XML twig; and

in response to determining that at least one element is the root of the query XML twig, dissociating the logic block for evaluating the predicate logic of the arbitrary Boolean operator from a stack used to store the elements and return twig results.

6. The system of claim 5 , wherein the processor is further configured to perform the steps of:

accessing the XML tree;

building a stack structure configured for identifying the query XML twig in the XML tree, the stack structure comprising the logic block.

7. The system of claim 5 , wherein a region encoding of the Boolean element is set as a region encoding of the element.

8. The system of claim 7 , wherein the Boolean element stores logic that incorporates the element but does not store the element.

9. Computer-readable code stored on a non-transitory computer-readable medium that, when executed by a computing device, performs the method:

receiving, by the computing device, a plurality of query XML twigs, each query XML twig including at least one sub-twig, each sub-twig including at least one element;

evaluating at least one time an arbitrary Boolean operation in the at least one sub-twig, evaluating at least one other time a different arbitrary Boolean operation in the at least one sub-twig, the arbitrary Boolean operation including at least once a primary Boolean predicate and at least one other time a derived Boolean predicate;

determining that at least one element in an XML tree is a root element of at least one sub-twig of the plurality of query XML twigs;

in response to determining that at least one element in the XML tree is a root element, populating a logic block, the logic block comprising one or more stack trees including at least one Boolean element, the Boolean element being a data structure configured for evaluating the predicate logic of the arbitrary Boolean operator, the logic block being configured to maintain existing structural relationships between different XML tree elements of various queries while the arbitrary Boolean operation is satisfied;

inserting the element into an appropriate stack of a hierarchical stack;

evaluating that at least one element contributes to finding results of the query;

discarding at least one element that does not contribute to finding results of the query;

determining that at least one element is the root of the query XML twig; and

in response to determining that at least one element is the root of the query XML twig, dissociating the logic block for evaluating the predicate logic of the arbitrary Boolean operator from a stack used to store the elements and return twig results.

10. The computer-readable code of claim 9 , the method further comprising:

accessing the XML tree;

building a stack structure configured for identifying the query XML twig in the XML tree, the stack structure comprising the logic block.

11. The computer-readable code of claim 9 ,

wherein a region encoding of the Boolean element is set as a region encoding of the element, and

wherein the Boolean element stores logic that incorporates the element but does not store the element.

Assignments (2)
CHANGE OF NAME Recorded Dec 27, 2011
From: INFOSYS TECHNOLOGIES LIMITED
To: INFOSYS LIMITED
Reel/Frame 027448/0064 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 29, 2011
From: BOSE, SUMIT KUMAR; MALVIYA, RASHI
To: INFOSYS TECHNOLOGIES LIMITED
Reel/Frame 026522/0738 →
Continuity (1)
Related Publication 20130007038A1 · Jan 3, 2013