# US 11,030,243 B2 · Structure based storage, query, update and transfer of tree-based documents

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,030,243 B2
- Document ID: US11030243B2
- Status: Granted
- Kind: B2
- Application number: 13/407,061
- Filed: 2012-02-28
- Published: 2012-06-21
- Granted: 2021-06-08
- Earliest claimed: 2007-11-26
- Assignees: International Business Machines Corporation
- Applicants: Sandeep Chowdhury
- Inventors: Sandeep Chowdhury
- Web page: https://patentgrep.com/patent/US11030243B2

## CPC

- G06F 16/81: Indexing, e.g. XML tags; Data structures therefor; Storage structures
- G06F 16/83: Querying
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Data is represented as a tree structure. A structure identifier (ID) that mathematically defines a structure of the tree structure is calculated. The structure ID is a representation of the structure of the tree structure and is independent of node names and node values of the tree structure. A mapping of the structure ID to the tree structure is stored.

## Claims

### Claim 1

A method for storing, accessing, and routing data values of an extensible markup language (XML) document without revealing context-identifying metadata that describes the data values or encrypting the data values, comprising:
generating a tree structure from the data values of the XML document by parsing the XML document with a Document Object Model (DOM) parser, creating the tree structure including a plurality of nodes that are each sequentially assigned a whole number integer node identifier (ID) from a sequential set of natural numbers, with each node being characterized by one of a set of node value(s) extracted from the respective data values of the XML document, where the tree structure omits the context-identifying metadata;
calculating, using the whole number integer node IDs identifiers (IDs) sequentially assigned to each of the plurality of nodes from the sequential set of natural numbers, a structure identifier (ID) that mathematically defines relationships among and between the plurality of nodes of the tree structure, the structure ID being a set of number(s) that forms a representation of node relationships in the tree structure, with the structure ID being independent of node names and further independent of the set of node value(s);
storing a mapping of the structure ID to the tree structure; and
assigning the whole number integer node IDs sequentially from the sequential set of natural numbers to each node of the tree structure, wherein each parent node of the tree structure comprises at least one child node, and where calculating, using the whole number integer node IDs sequentially assigned to each of the plurality of nodes from the sequential set of natural numbers, the structure ID that mathematically defines the relationships among and between the plurality of nodes of the tree structure comprises:
selecting, using the assigned whole number integer node ID of a respective parent node as an index, a prime number within an indexed set of prime numbers that corresponds to the index;
calculating the structure ID by calculating a plurality of results, where each result represents one parent node and comprises the selected prime number raised to a power of a number of child nodes of the respective parent node; and
calculating the structure ID as a mathematical product of the plurality of results to represent a structure of the tree structure;
matching, by a router, subscription information of one or more subscribers, comprising a subscriber structure ID against the structure ID of the tree structure, or a fragment thereof;
filtering, by the router, data values of the XML document corresponding to the subscription information matching the structure ID of the tree structure or the fragment thereof;
formatting, by the router the data values of the XML document corresponding to the subscription information matching the structure ID or fragments thereof into a pre-determined format comprising a delimiter separating multiple data items and a predetermined separator for parsing the structure ID of the tree structure; and
routing, by the router, the data values of the XML document corresponding to the structure ID or the fragment thereof of that matches the subscriber information, to the one or more subscribers mapped to the subscriber structure ID.

### Claim 2 (depends on 1)

The method of claim 1, where assigning the whole number integer node IDs sequentially from the sequential set of natural numbers to each node of the tree structure comprises assigning a unique whole number integer node ID from the sequential set of natural numbers to each node of the tree structure beginning from a highest level to a lowest level and from a left to right within each level of the tree structure.

### Claim 3 (depends on 1)

The method of claim 1, further comprising storing a mapping of a node name of each node of the tree structure to a respective whole number integer node ID.

### Claim 4 (depends on 1)

The method of claim 1, further comprising storing a mapping of a node value of each node of the tree structure to a respective whole number integer node ID.

### Claim 5 (depends on 1)

The method of claim 1, where the tree structure represents a structure of the XML document, and the calculated structure ID uniquely mathematically identifies a structure of the tree structure of the XML document.

### Claim 6

A system for storing, accessing, and routing data values of an extensible markup language (XML) document without revealing context-identifying metadata that describes the data values or encrypting the data values, comprising:
a memory; and
a processor programmed to:
generate a tree structure from the data values of the XML document by parsing the XML document with a Document Object Model (DOM) parser, creating the tree structure including a plurality of nodes that are each sequentially assigned a whole number integer node identifier (ID) from a sequential set of natural numbers, with each node being characterized by one of a set of node value(s) extracted from the respective data values of the XML document, where the tree structure omits the context-identifying metadata;
calculate, using the whole number integer node IDs sequentially assigned to each of the plurality of nodes from the sequential set of natural numbers, a structure identifier (ID) that mathematically defines relationships among and between the plurality of nodes of the tree structure, the structure ID being a set of number(s) that forms a representation of node relationships in the tree structure, with the structure ID being independent of node names and further independent of the set of node value(s);
store a mapping of the structure ID to the tree structure within the memory; and
assign the whole number integer node IDs sequentially from the sequential set of natural numbers to each node of the tree structure, wherein each parent node of the tree structure comprises at least one child node, and where, in being programmed to calculate, using the whole number integer node IDs sequentially assigned to each of the plurality of nodes from the sequential set of natural numbers, the structure ID that mathematically defines the relationships among and between the plurality of nodes of the tree structure, the processor is programmed to:
select, using the assigned whole number integer node ID of a respective parent node as an index, a prime number within an indexed set of prime numbers that corresponds to the index;
calculate the structure ID by calculating a plurality of results, where each result represents one parent node and comprises the selected prime number raised to a power of a number of child nodes of the respective parent node; and
calculate the structure ID as a mathematical product of the plurality of results to represent a structure of the tree structure;
matching, by a router, subscription information of one or more subscribers, comprising a subscriber structure ID against the structure ID of the tree structure, or a fragment thereof;
filtering, by the router, data values of the XML document corresponding to the subscription information matching the structure ID of the tree structure or the fragment thereof;
formatting, by the router the data values of the XML document corresponding to the subscription information matching the structure ID into a pre-determined format comprising a delimiter separating multiple data items and a predetermined separator for parsing the structure ID of the tree structure; and
routing, by the router, the data values of the XML document corresponding to the structure ID or fragments thereof of that matches the subscriber information, to the one or more subscribers mapped to the subscriber structure ID.

### Claim 7 (depends on 6)

The system of claim 6, where, in being programmed to assign the whole number integer node IDs sequentially from the sequential set of natural numbers to each node of the tree structure, the processor is programmed to assign a unique whole number integer node ID from the sequential set of natural numbers to each node of the tree structure beginning from a highest level to a lowest level and from a left to right within each level of the tree structure.

### Claim 8 (depends on 6)

The system of claim 6, where the processor is further programmed to store a mapping of a node name of each node of the tree structure to a respective whole number integer node ID within the memory.

### Claim 9 (depends on 6)

The system of claim 6, where the processor is further programmed to store a mapping of a node value of each node of the tree structure to a respective whole number integer node ID within the memory.

### Claim 10 (depends on 6)

The system of claim 6, where the tree structure represents a structure of the XML document, and the calculated structure ID uniquely mathematically identifies a structure of the tree structure of the XML document.

### Claim 11

A computer program product comprising a computer readable storage device including computer readable program code, where the computer readable program code when executed on a computer causes the computer to:
generate a tree structure from data values of an extensible markup language (XML) document by parsing the XML document with a Document Object Model (DOM) parser, creating the tree structure including a plurality of nodes that are each sequentially assigned a whole number integer node identifier (ID) from a sequential set of natural numbers, with each node being characterized by one of a set of node value(s) extracted from the respective data values of the XML document, where the tree structure omits context-identifying metadata of the XML document that describes the data values;
calculate, using the whole number integer node IDs sequentially assigned to each of the plurality of nodes from the sequential set of natural numbers, a structure identifier (ID) that mathematically defines relationships among and between the plurality of nodes of the tree structure, the structure ID being a set of number(s) that forms a representation of node relationships in the tree structure, with the structure ID being independent of node names and further independent of the set of node value(s);
store a mapping of the structure ID to the tree structure; and
assign the whole number integer node IDs sequentially from the sequential set of natural numbers to each node of the tree structure, wherein each parent node of the tree structure comprises at least one child node, and where in causing the computer to calculate, using the whole number integer node IDs sequentially assigned to each of the plurality of nodes from the sequential set of natural numbers, the structure ID that mathematically defines the relationships among and between the plurality of nodes of the tree structure, the computer readable program code when executed on the computer causes the computer to:
select, using the assigned whole number integer node ID of a respective parent node as an index, a prime number within an indexed set of prime numbers that corresponds to the index;
calculate the structure ID by calculating a plurality of results, where each result represents one parent node and comprises the selected prime number raised to a power of a number of child nodes of the respective parent node; and
calculate the structure ID as a mathematical product of the plurality of results to represent a structure of the tree structure;
match, by a router, subscription information of one or more subscribers, comprising a subscriber structure ID against the structure ID of the tree structure, or a fragment thereof;
filter, by the router, data values of the XML document corresponding to the subscription information matching the structure ID of the tree structure or the fragment thereof;
format, by the router, the data values of the XML document corresponding to the subscription information matching the structure ID or fragments thereof into a pre-determined format comprising a delimiter separating multiple data items and a predetermined separator for parsing the structure ID of the tree structure; and
route, by the router, the data values of the XML document corresponding to the structure ID or the fragment thereof of that matches the subscriber information, to the one or more subscribers mapped to the subscriber structure ID.

### Claim 12 (depends on 11)

The computer program product of claim 11, where in causing the computer to assign the whole number integer node IDs sequentially from the sequential set of natural numbers to each node of the tree structure, the computer readable program code when executed on the computer causes the computer to assign a unique whole number integer node ID from the sequential set of natural numbers to each node of the tree structure beginning from a highest level to a lowest level and from a left to right within each level of the tree structure.

### Claim 13 (depends on 11)

The computer program product of claim 11, where the computer readable program code when executed on the computer further causes the computer to store a mapping of a node name of each node of the tree structure to a respective whole number integer node ID.

### Claim 14 (depends on 11)

The computer program product of claim 11, where the computer readable program code when executed on the computer further causes the computer to store a mapping of a node value of each node of the tree structure to a respective whole number integer node ID.

### Claim 15 (depends on 11)

The computer program product of claim 11, where the tree structure represents a structure of the XML document, and the calculated structure ID uniquely mathematically identifies a structure of the tree structure of the XML document.
