IP Library Granted Patent US 9,087,091
Granted Patent B2
US 9,087,091 · App. 13/961,481 · Granted Jul 21, 2015

Determination of differences in hierarchical data

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 9,087,091
App. No.
13/961,481
Granted
Jul 21, 2015
Kind
B2
Abstract

A system includes determination of a first tree comprising a first hierarchy of nodes and a second tree comprising a second hierarchy of nodes, determination of first subtrees of the first tree which are identical to first subtrees of the second tree, generation of a first mapping between nodes of the first subtrees of the first tree and nodes of the first subtrees of the second tree, generation of a first feature vector for each of second subtrees of the first tree, insertion of the first feature vectors into an index structure, generation of a second feature vector for each of second subtrees of the second tree, and generation of a second mapping between nodes of second subtrees of the first tree and nodes of the second subtrees of the second tree based on the second feature vectors and the index structure.

Claims (74)

1. A computing system comprising:

a memory storing processor-executable program code; and

a processor to execute the processor-executable program code in order to cause the computing system to:

determine a first tree comprising a first hierarchy of nodes and a second tree comprising a second hierarchy of nodes;

determine first subtrees of the first tree which are identical to first subtrees of the second tree;

generate a first mapping between nodes of the first subtrees of the first tree and nodes of the first subtrees of the second tree;

generate a first feature vector for each of second subtrees of the first tree;

insert the first feature vectors into an index structure;

generate a second feature vector for each of second subtrees of the second tree; and

generate a second mapping between nodes of second subtrees of the first tree and nodes of the second subtrees of the second tree based on the second feature vectors and the index structure.

2. A computing system according to claim 1 , the processor to further execute the processor-executable program code in order to cause the computing system to:

generate an edit script of operations to transform the first tree to the second tree based on the first mapping and the second mapping.

3. A computing system according to claim 1 , wherein generation of the second mapping comprises:

querying of the index structure for nearest neighbors of each of the second feature vectors.

4. A computing system according to claim 3 , wherein generation of a first feature vector for each of second subtrees of the first tree comprises:

serialization of each of the second subtrees of the first tree into a first respective bag of grams, and

wherein generation of a second feature vector for each of second subtrees of the second tree comprises:

serialization of each of the second subtrees of the second tree into a second respective bag of grams.

5. A computing system according to claim 1 , wherein generation of a first feature vector for each of second subtrees of the first tree comprises:

serialization of each of the second subtrees of the first tree into a respective bag of grams; and

for each of the bags of grams corresponding to the second subtrees of the first tree, generate a fixed-size d-dimensional vector, and

wherein generation of a second feature vector for each of second subtrees of the second tree comprises:

serialization of each of the second subtrees of the second tree into a second respective bag of grams; and

for each of the second bags of grams corresponding to the second subtrees of the second tree generate a second fixed-size d-dimensional vector.

6. A computing system according to claim 1 , wherein generation of the second mapping comprises:

determination of distances between end points of the fixed-size d-dimensional vectors and end points of the second fixed-size d-dimensional vectors.

7. A non-transitory computer-readable medium storing program code, the program code executable by a processor of a computing system to cause the computing system to:

determine a first tree comprising a first hierarchy of nodes and a second tree comprising a second hierarchy of nodes;

determine first subtrees of the first tree which are identical to first subtrees of the second tree;

generate a first mapping between nodes of the first subtrees of the first tree and nodes of the first subtrees of the second tree;

generate a first feature vector for each of second subtrees of the first tree;

insert the first feature vectors into an index structure;

generate a second feature vector for each of second subtrees of the second tree; and

generate a second mapping between nodes of second subtrees of the first tree and nodes of the second subtrees of the second tree based on the second feature vectors and the index structure.

8. A non-transitory computer-readable medium according to claim 7 , the program code executable by a processor of a computing system to cause the computing system to:

generate an edit script of operations to transform the first tree to the second tree based on the first mapping and the second mapping.

9. A non-transitory computer-readable medium according to claim 6 , wherein generation of the second mapping comprises:

querying of the index structure for nearest neighbors of each of the second feature vectors.

10. A non-transitory computer-readable medium according to claim 9 , wherein generation of a first feature vector for each of second subtrees of the first tree comprises:

serialization of each of the second subtrees of the first tree into a first respective bag of grams, and

wherein generation of a second feature vector for each of second subtrees of the second tree comprises:

serialization of each of the second subtrees of the second tree into a second respective bag of grams.

11. A non-transitory computer-readable medium according to claim 7 , wherein generation of a first feature vector for each of second subtrees of the first tree comprises:

serialization of each of the second subtrees of the first tree into a respective bag of grams; and

for each of the bags of grams corresponding to the second subtrees of the first tree, generate a fixed-size d-dimensional vector, and

wherein generation of a second feature vector for each of second subtrees of the second tree comprises:

serialization of each of the second subtrees of the second tree into a second respective bag of grams; and

for each of the second bags of grams corresponding to the second subtrees of the second tree generate a second fixed-size d-dimensional vector.

12. A non-transitory computer-readable medium according to claim 7 , wherein generation of the second mapping comprises:

determination of distances between end points of the fixed-size d-dimensional vectors and end points of the second fixed-size d-dimensional vectors.

13. A computer-implemented method comprising:

determining a first tree comprising a first hierarchy of nodes and a second tree comprising a second hierarchy of nodes;

determining first subtrees of the first tree which are identical to first subtrees of the second tree;

generating a first mapping between nodes of the first subtrees of the first tree and nodes of the first subtrees of the second tree;

generating a first feature vector for each of second subtrees of the first tree;

inserting the first feature vectors into an index structure;

generating a second feature vector for each of second subtrees of the second tree; and

generating a second mapping between nodes of second subtrees of the first tree and nodes of the second subtrees of the second tree based on the second feature vectors and the index structure.

14. A computer-implemented method according to claim 13 , further comprising:

generating an edit script of operations to transform the first tree to the second tree based on the first mapping and the second mapping.

15. A computer-implemented method according to claim 13 , wherein generating the second mapping comprises:

querying the index structure for nearest neighbors of each of the second feature vectors.

16. A computer-implemented method according to claim 15 , wherein generating a first feature vector for each of second subtrees of the first tree comprises:

serializing each of the second subtrees of the first tree into a first respective bag of grams, and

wherein generating a second feature vector for each of second subtrees of the second tree comprises:

serializing each of the second subtrees of the second tree into a second respective bag of grams.

17. A computer-implemented method according to claim 13 , wherein generating a first feature vector for each of second subtrees of the first tree comprises:

serializing each of the second subtrees of the first tree into a respective bag of grams; and

for each of the bags of grams corresponding to the second subtrees of the first tree, generating a fixed-size d-dimensional vector, and

wherein generation of a second feature vector for each of second subtrees of the second tree comprises:

serializing each of the second subtrees of the second tree into a second respective bag of grams; and

for each of the second bags of grams corresponding to the second subtrees of the second tree generating a second fixed-size d-dimensional vector.

18. A computer-implemented method according to claim 13 , wherein generating the second mapping comprises:

determining distances between end points of the fixed-size d-dimensional vectors and end points of the second fixed-size d-dimensional vectors.

Assignments (2)
CHANGE OF NAME Recorded Aug 26, 2014
From: SAP AG
To: SAP SE
Reel/Frame 033625/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2013
From: RAIBER, MARTIN; FINIS, JAN; BRUNEL, ROBERT
To: SAP AG
Reel/Frame 030963/0456 →