IP Library Granted Patent US 8,359,342
Granted Patent B2
US 8,359,342 · App. 12/292,146 · Granted Jan 22, 2013

Method and system for generating indexes in an XML database management system

Inventors: Thorsten Fiebig (Manheim, DE); Gary Woods (Seeheim, DE); Gunther Rademacher (Münster, DE)
Assignee: Software AG
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,359,342
App. No.
12/292,146
Granted
Jan 22, 2013
Kind
B2
Abstract

The invention concerns a method for generating at least one index ( 10 ) over XML documents ( 30 ) in an XML database ( 40 ); the method comprising the steps of: a. executing at least one indexing function ( 20 ) defined in the XQuery language; each indexing function ( 20 ) accepting an XML document ( 30 ) as input and returning at least one computed result; and b. storing each of the at least one computed results from the at least one indexing function ( 20 ) as a key ( 11 ) of the corresponding index ( 10 ) and a reference to the input XML document ( 30 ) as a value ( 12 ) of the index ( 10 ).

Claims (30)

1. A computer-implemented method for generating at least one index over XML documents in an XML database configured to operate in a computing system that includes at least one processor, the method comprising:

executing, via the at least one processor, at least one indexing function defined in the XQuery language, each said indexing function being configured to accept an XML document as input and to return at least one computed result;

storing each said computed result from the at least one indexing function as a key of the corresponding index; and

storing a reference to the input XML document as a value of the index,

wherein the at least one indexing function returns at least one XML substructure, and further comprising mapping each of the at least one XML substructures onto a tuple of type values and wherein each of the tuples is stored as a key of the index.

2. The method of claim 1 , wherein the mapping is defined by at least one pair of path expressions and types, the elements of the tuples being populated with the parts of the XML substructures which correspond to the path expressions and being typed with the corresponding types.

3. The method of claim 1 , wherein the at least one indexing function calls at least one aggregation operation.

4. The method of claim 1 , wherein the at least one indexing function returns at least one constructed element or attribute not present in the input XML document.

5. The method of claim 1 , wherein the at least one indexing function is defined in a library module and the library module is bound to at least one collection of XML documents in the XML database.

6. The method of claim 1 , wherein the structure of the XML documents in the XML database is unknown or partially defined in a schema of the XML database.

7. The method of claim 1 , further comprising optimizing an XQuery that comprises at least one call of an indexing function by scanning the corresponding index of the indexing function when processing the XQuery.

8. A non-transitory computer readable storage medium tangibly storing a computer program comprising instructions that, when executed by at least one processor of a computing system, are configured to perform the method according to claim 1 .

9. An XML database management system (XDBMS) for generating at least one index over XML documents in an XML database, the system comprising:

at least one processor configured to execute at least one indexing function that takes as input an XML document and returns at least one computed result; and

a non-transitory computer readable storage medium configured to store:

at least one library module comprising the at least one indexing function defined in the XQuery language, each said indexing function being configured to accept an XML document as input and to return at least one computed result;

the at least one computed result from the at least one indexing function as a key of the corresponding index,

wherein the at least one indexing function is configured to return at least one XML substructure and wherein the at least one processor is further configured to map each said XML substructure onto a tuple of type values and to store each of the tuples as a key of the index.

10. The system of claim 9 , further comprising at least one pair of path expressions and types, and wherein the at least one processor is further configured to populate the elements of the tuples with the parts of the XML substructures that correspond to the path expressions and to type the elements of the tuples with the corresponding types.

11. The system of claim 9 , wherein the at least one processor is further configured to bind the library module to at least one collection of XML documents in the XML database.

12. The system of claim 9 , wherein the at least one processor is further configured to optimize an XQuery that comprises at least one call of an indexing function by scanning the corresponding index of the indexing function when processing the XQuery.

13. An XML database management system (XDBMS) for generating an index from a plurality of XML documents, the system comprising:

a processing system that includes at least one processor, the processing system configured to:

load an XML document from among the plurality of XML documents;

execute at least one XQuery indexing function using the received XML document as input;

obtain a result from execution of the XQuery indexing function with the received XML document;

create, on a non-transitory computer readable storage medium, an index entry; and

populate the index entry on the non-transitory computer readable storage medium with the XQuery result as a key of the index entry and a reference to the XML document from the plurality of XML documents as a value of the index entry,

wherein a result from the execution of the at least one XQuery indexing function is at least one XML substructure, and

wherein the at least one processor is further configured to map each one of the at least one XML substructure onto a tuple of type values and to store each of the tuples as the key of a respective index entry.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 25, 2024
From: SOFTWARE AG
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 069048/0240 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2009
From: FIEBIG, THORSTEN; WOODS, GARY; RADEMACHER, GUNTHER
To: SOFTWARE AG
Reel/Frame 022169/0863 →
Priority Claims (1)
EP 08012171 · Jul 4, 2008 · regional
Continuity (1)
Related Publication 20100005108A1 · Jan 7, 2010