IP Library Granted Patent US 7,996,444
Granted Patent B2
US 7,996,444 · App. 12/033,007 · Granted Aug 9, 2011

Creation of pre-filters for more efficient X-path processing

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,996,444
App. No.
12/033,007
Granted
Aug 9, 2011
Kind
B2
Abstract

A system and method is provided for XML query processing includes an execution compiler for transforming an XML query into an executable XML query plan. A query rewrite processor performs query transformation on the XML query, the query transformations including transforming an XPath within said XML Query into a pre-filter. The XML query is then transformed into a transformed XML query which includes the pre-filter.

Claims (38)

1. An XML query rewrite method comprising:

transforming, via an execution compiler included in an XML compilation processor executable via hardware or a combination of hardware and software, an XML query into an XML query plan, said transforming into said XML query plan comprising:

identifying an XPath within said XML query using a query rewrite processor included in said XML compilation processor; and

transforming, via query transformation on said XML query, said XPath into a pre-filter of said XML query using said query rewrite processor, wherein said query rewrite processor is adapted to perform said query transformation by transforming the expression:

$i[e 1 ][e 2 ] into the expression $i[e 1 ][e 2 ]/e 2 , wherein e 1 is a filter and e 2 is a deterministic XQuery expression, and wherein subsequent to said transforming of the expression, applying said XML query to a sequence of XML items selected from a group consisting of: a sequence of XML items extracted from one or more extensible markup language (XML) documents, a sequence of XML items supplied by an Internet service, a sequence of HTML items extracted from one or more hypertext markup language (HTML) documents, and a sequence of HTML items supplied by an Internet service.

2. The method of claim 1 further comprising executing said prefilter.

3. The method of claim 2 further comprising executing said XML query after said execution of said pre-filter.

4. The method of claim 3 further comprising eliminating data using said pre-filter before executing said XML query.

5. The method of claim 1 further comprising:

finding an index that matches said pre-filter.

6. An XML query rewrite method for processing an XML query, said XML query rewrite method comprising:

transforming, via an execution compiler included in an XML compilation processor executable via hardware or a combination of hardware and software, an XML query into an XML query plan, said transforming into said XML query plan comprising:

identifying an XPath within said XML query using a query rewrite processor included in said XML compilation processor; and

transforming, via query transformation on said XML query, said XPath into a pre-filter of said XML query using said query rewrite processor, wherein said query rewrite processor is adapted to perform said query transformation by transforming the expression:

$i[e 1 ][e 2 ] into the expression $i[e 1 ][e 2 ]/e 2 , wherein e 1 is a filter and e 2 is a deterministic XQuery expression, and wherein subsequent to said transforming of the expression, applying said XML query to a sequence of XML items selected from a group consisting of: a sequence of XML items extracted from one or more extensible markup language (XML) documents, a sequence of XML items supplied by an Internet service, a sequence of HTML items extracted from one or more hypertext markup language (HTML) documents, and a sequence of HTML items supplied by an Internet service.

7. The method of claim 6 further comprising eliminating data using said pre-filter before executing said XML query.

8. The method of claim 6 further comprising finding an index that matches said pre-filter.

9. A system comprising:

hardware or a combination of hardware and software, and an XML compilation processor, said XML compilation processor comprising:

an execution compiler transforming an XML query into an XML query plan; and

a query rewrite processor identifying an XPath within said XML query, and transforming, via query transformation on said XML query, said XPath into a pre-filter of said XML query using said query rewrite processor, wherein said query rewrite processor is adapted to perform said query transformation by transforming the expression:

$i[e 1 ][e 2 ] into the expression $i[e 1 ][e 2 ]/e 2 , wherein e 1 is a filter and e 2 is a deterministic XQuery expression, and wherein subsequent to said transforming of the expression, applying said XML query to a sequence of XML items selected from a group consisting of: a sequence of XML items extracted from one or more extensible markup language (XML) documents, a sequence of XML items supplied by an Internet service, a sequence of HTML items extracted from one or more hypertext markup language (HTML) documents, and a sequence of HTML items supplied by an Internet service.

10. The system of claim 9 wherein said execution compiler eliminates data using said pre-filter before said XML query is executed.

11. The system of claim 9 further comprising:

an index matcher for finding an index that matches said pre-filter.

12. The system of claim 9 further comprising:

textual XML query parser for providing a parsed XML query; and

query optimizer for optimizing data flow.

13. The system of claim 12 further comprising a data flow modeler for receiving said parsed XML query and producing an equivalent data flow model.

14. The system of claim 13 further comprising an execution compiler for compiling a data flow model into an executable XML query plan.

15. A computer program product for querying an XML document, said computer program product comprising:

a computer readable storage medium, wherein said computer readable storage medium is selected from a group consisting of an electronic device, a magnetic device, an optical device, an electromagnetic device, an infrared device, a semiconductor device, a semiconductor memory, a solid state memory, a magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk, an optical disk, a compact disk—read-only memory (CR-ROM), a compact disk—read/write (CD-R/W), and a DVD, said computer readable storage medium having computer readable program code embodied therewith, said computer readable program code comprising:

computer readable program code configured to:

transforming, via an execution compiler included in an XML compilation processor, an XML query into an XML query plan, said transforming into said XML query plan comprising:

identifying an XPath within said XML query using a query rewrite processor included in said XML compilation processor; and

transforming, via query transformation on said XML query, said XPath into a pre-filter of said XML query using said query rewrite processor, wherein said query rewrite processor is adapted to perform said query transformation by transforming the expression:

$i[e 1 ][e 2 ] into the expression $i[e 1 ][e 2 ]/e 2 , wherein e 1 is a filter and e 2 is a deterministic XQuery expression, and wherein subsequent to said transforming of the expression, applying said XML query to a sequence of XML items selected from a group consisting of: a sequence of XML items extracted from one or more extensible markup language (XML) documents, a sequence of XML items supplied by an Internet service, a sequence of HTML items extracted from one or more hypertext markup language (HTML) documents, and a sequence of HTML items supplied by an Internet service.

16. The computer program product of claim 15 wherein an index is matched to said pre-filter.

Assignments (4)
SECURITY INTEREST Recorded Aug 10, 2023
From: DOMO, INC.
To: OBSIDIAN AGENCY SERVICES, INC.
Reel/Frame 064562/0269 →
SECURITY INTEREST Recorded May 12, 2020
From: DOMO, INC.
To: OBSIDIAN AGENCY SERVICES, INC.
Reel/Frame 052642/0210 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2015
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: DOMO, INC.
Reel/Frame 036087/0456 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 18, 2008
From: SEEMANN, NORMAN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 020522/0921 →