IP Library Patent Application 12783559
Patent Application
App. No. 12/783,559

MAPPING DOCUMENTS TO A RELATIONAL DATABASE TABLE WITH A DOCUMENT POSITION COLUMN

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 None
App. No.
12/783,559
Abstract

Architecture that maps document data (e.g., XML-extended markup language) into columns of one table, thereby avoiding schema normalization problems through special data storage. Moreover, an algorithm is described that can translate a query (e.g., in XPath (XML path language), a query language for navigating through document elements and attributes of an XML document) into a relational algebra query of the document column representation. Based on the characteristics of the new mapping, query rewriting rules are provided that optimize the relational algebra query by minimizing the number of joins. The mapping of XML documents to the table is based on a summary structure and a hierarchical labeling scheme (e.g., ordpath) to enable a high-fidelity representation. Annotations are employed on the summary structure nodes to assist in mapping XML elements and attributes to the table.

Claims (39)

1 . A computer-implemented data processing system having computer readable media that store executable instructions executed by a processor, comprising:

a structure generator component that generates a summary structure based on documents, the summary structure includes nodes for labels in the documents and path information to positions of the nodes in the documents;

a table generator component that generates a table definition based on the summary structure and creates a table according to the table definition, where each node of the summary structure maps to one or more columns of the table and where one column of the table contains a document-position column that identifies one position in a document such that for each row, a document-position, summary structure, and schema structure include suitable information to derive location of all populated elements of the row in the document; and

a storage component that maps the nodes and path information of documents into the table according to the table definition.

2 . The system of claim 1 , wherein the document-position column is an ordpath.

3 . The system of claim 1 , wherein the structure generator component generates the summary structure using schema information about the documents.

4 . The system of claim 1 , wherein the summary generator component annotates the summary structure to indicate instances of child nodes relative to a parent.

5 . The system of claim 1 , wherein the table includes columns for at least one of a document identifier, the path information, element column for each node of the summary structure, text element column for each element node that has text content, or attribute column for each attribute node of the summary structure.

6 . The system of claim 1 , wherein the storage component translates each of the documents into rows of the table.

7 . The system of claim 1 , wherein the summary structure includes exception nodes that track order of the nodes in the documents.

8 . The system of claim 1 , further comprising a query component that translates a query over XML documents into a relational algebra query over the columns of the table.

9 . The system of claim 8 , wherein the query is expressed in XPath.

10 . The system of claim 8 , wherein the query component rewrites the relational algebra query based on table variables assigned to nodes of the summary structure.

11 . The system of claim 10 , wherein the query component optimizes the query by eliminating join operators based on at least one of the table variables, predicates, or summary structure used in the query.

12 . The system of claim 1 , wherein the structure generator component, table generator component, and storage component are part of a mid-tier component that stores tables and executes queries.

13 . The system of claim 1 , wherein the structure generator component, table generator component, and storage component create an index over a document-valued column of a table.

14 . The system of claim 1 , wherein the structure generator component, table generator component, and storage component are a primary storage system for a document-valued column.

15 . A computer-implemented data processing method executable via a processor, comprising:

receiving document of document elements for mapping into a table;

creating a summary structure of nodes of the document and a table definition for the table based on the summary structure;

mapping each node of the summary structure to one or more columns in the table according to an order of document nodes in the summary structure; and

storing one document node per row in the table.

16 . The method of claim 15 , further comprising annotating the summary structure with path information that identifies an exact position of a node in the summary structure.

17 . The method of claim 15 , further comprising creating at least one column in the table for each node in the summary structure.

18 . The method of claim 15 , further comprising translating a query directed to the documents into a relational algebra query and optimizing the relational algebra query based on table variables assigned to nodes of the summary structure.

19 . The method of claim 18 , further comprising removing join operators in the relational algebra query based on rewriting rules.

20 . The method of claim 15 , further comprising storing instances of a child node in a same row as an associated parent node.

21 . A computer-implemented data processing method executable via a processor, comprising:

receiving documents for mapping into a table;

creating a summary structure of nodes of the documents;

annotating the summary structure with path information to each of the nodes;

creating a table definition for the table based on the summary structure;

creating the table based on the table definition;

mapping each node of the summary structure to one or more columns in the table according to an order of document nodes in the summary structure; and

storing documents nodes one node per row in the table.

22 . The method of claim 21 , further comprising enforcing order among sibling nodes in the summary structure based on an exception node.

23 . The method of claim 21 , further comprising storing child document nodes that are non-collection elements in a same row in the table.

24 . The method of claim 21 , further comprising storing child document nodes that are collection elements in different rows in the table.

25 . The method of claim 21 , further comprising storing child document nodes that are exception nodes in separate rows of the table.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034766/0509 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 21, 2010
From: CHEN, LIANG; SHAMGUNOV, NIKITA; BERNSTEIN, PHILIP A.; RYS, MICHAEL; TERWILLIGER, JAMES F.; CARLIN, PETER ALAN; TOMIC, DRAGAN
To: MICROSOFT CORPORATION
Reel/Frame 024419/0424 →