IP Library Granted Patent US 10,599,718
Granted Patent B2
US 10,599,718 · App. 14/879,276 · Granted Mar 24, 2020

Systems and/or methods for graph based declarative mapping

Inventors: Roshan Kumar (Hyderabad, IN); Gyanendra Singh Baiswar (Barabanki, IN)
Assignee: SOFTWARE AG
G06F16/86G06F16/2365G06F16/9024
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 10,599,718
App. No.
14/879,276
Granted
Mar 24, 2020
Kind
B2
Abstract

Techniques for mapping from one or more source information sets to one or more target information sets are provided. Mapping ontologies associate a first declarative expression with a first information set from which to read first information, and a second declarative expression with a second information set to which second information determined based upon the read first information is written. A mapping graph having a nodes arranged according to an execution flow for obtaining the one or more target information sets is generated, at least some of these nodes representing respective ones of the mapping ontologies. The one or more target information sets are generated, each including information determined from the one or more source information sets, by traversing the mapping graph according to the execution flow. Each of the first and second declarative expressions may be associated with a mapping resolver for accessing one or more information sets.

Claims (37)

1. A system for mapping from one or more source information sets to one or more target information sets, the system comprising:

at least one memory storing a plurality of mapping ontologies each associating a first declarative expression with the one or more source information sets from which to read first information, and a second declarative expression with the one or more target information sets to which second information determined based upon the read first information is written; and

at least one processor,

wherein the memory further storing computer readable instructions that, when executed by the at least one processor, cause the system to:

generate a mapping graph, using a mapping graph creator, by parsing the plurality of mapping ontologies for the one or more source information sets to obtain the one or more target information sets, wherein the mapping graph having a plurality of nodes arranged according to an execution flow; and

generate, using a mapping graph executor, the one or more target information sets, by traversing, at runtime execution, the mapping graph according to the execution flow to evaluate mapping rules and the expression graphs, included in the mapping graph, to map from the one or more source information sets to the one or more target information sets,

wherein multiple sources of various Multipurpose Internet Mail Extension (MIME) types can be accessed as the one or more source information sets, and

wherein the mapping graph includes a plurality of nodes in which (a) the nodes representing ones of the plurality of mapping ontologies is a first set of nodes, (b) a second set of nodes represent respective conditional expressions, and (c) a connection between a first node and a second node, of the plurality of nodes, represent a respective parent-child relationship between the first node and the second node.

2. The system according to claim 1 , wherein the at least one memory further stores a plurality of mapping resolvers, each of the first and second declarative expressions being associated with at least one of the stored mapping resolvers for accessing one or more information sets, and wherein the traversing includes, at respective nodes, of the plurality of nodes, of the mapping graph, executing the corresponding resolvers to map information from a source one of the information sets to a target one of the information sets.

3. The system according to claim 1 , wherein at least one of the mapping ontologies specifies a context, and wherein the at least one processor is further configured to evaluate declarative expressions and/or conditional expressions represented in the at least one of the mapping ontologies in the specified context.

4. The system according to claim 1 , wherein the at least one processor is further configured to traverse, in response to a change in one of the source information sets, at least a portion of the mapping graph to update the generated one or more target information sets.

5. The system according to claim 1 , wherein the at least one processor is further configured to dynamically update, in response to a change in any of the one or more source information sets, one or more of the target information sets.

6. The system according to claim 1 , wherein the at least one processor is further configured to dynamically update, in response to a change in the mapping graph, one or more of the target information sets.

7. The system according to claim 6 , wherein the at least one processor is further configured to, in response to the change, load into the memory a second version of the mapping graph with updates corresponding to the change to operate simultaneously with a first version of the mapping graph not updated in response to the change.

8. The system according to claim 6 , wherein the at least one processor is further configured to, in response to the change, update in the memory only a part of the mapping graph.

9. The system according to claim 1 , wherein each of the first declarative expression and the second declarative expression includes data model information for accessing respective information sets.

10. The system according to claim 1 , wherein at least one of the source information sets include unstructured data, and wherein the first declarative expression of one of the plurality of nodes includes all data model information for accessing an item of content in the at least one source information set.

11. The system according to claim 1 , wherein the at least one processor is further configured to perform the traversing of each node in the mapping graph according to an atomic function.

12. The system according to claim 1 , wherein the source information sets include content from a plurality of sources each providing content of a respective MIME type, and wherein at least one of the output information sets include transformed content based upon the content from the plurality of sources.

13. The system according to claim 1 , wherein the at least one processor is further configured to perform nested, hierarchical, and/or chained evaluation of the first declarative expression and/or the second declarative expression.

14. The system according to claim 1 , wherein the multiple sources of various MIME types can be accessed using declarative mapping expressions and rules that are semantically independent of each other.

15. The system according to claim 1 , wherein the one or more source information sets are represented in a structured document and converted into a single object document.

16. The system according to claim 15 , wherein the structured document is input into the mapping graph creator wherein the mapping graph creator parses the structured document to generate the mapping graph.

17. The system according to claim 1 , wherein each node in the mapping graph composed of separate expression graphs corresponding to one or more source and target expressions, and wherein the mapping graph creator configured to access a mapping ontologies repository and a mapping resolvers repository.

18. The system according to claim 1 , wherein at least the first and second declarative expressions contain at least some of the plurality of mapping ontologies embodied in programming code logic.

19. A method for mapping from one or more source information sets to one or more target information sets, the method comprising:

storing a plurality of mapping ontologies in at least one memory, each mapping ontology from the plurality of mapping ontologies associating a first declarative expression with the one or more source information sets from which to read first information, and a second declarative expression with the one or more target information sets to which second information determined based upon the read first information is written;

generating, by at least one processor communicably coupled to said memory and using a mapping graph creator, a mapping graph by parsing the plurality of mapping ontologies for the one or more source information sets to obtain the one or more target information sets, wherein the mapping graph having a plurality of nodes arranged according to an execution flow; and

generating, by the at least one processor using a mapping graph executor, the one or more target information sets, by traversing, at runtime execution, the mapping graph according to the execution flow to evaluate mapping rules and the expression graphs, included in the mapping graph, to map from the one or more source information sets to the one or more target information sets,

wherein multiple sources of various Multipurpose Internet Mail Extension (MIME) types can be accessed as the one or more source information sets, and

wherein the mapping graph includes a plurality of nodes in which (a) the nodes representing ones of the plurality of mapping ontologies is a first set of nodes, (b) a second set of nodes represent respective conditional expressions, and (c) a connection between a first node and a second node, of the plurality of nodes, represent a respective parent-child relationship between the first node and the second node.

20. A non-transitory computer-readable storage medium having stored thereon computer program instructions that, when executed by a processor of computer having a memory configured to store a plurality of mapping ontologies, wherein each stored mapping ontology associates a first declarative expression with one or more source information sets from which to read first information and a second declarative expression with one or more target information sets to which second information determined based upon the read first information is written, causes the computer to perform operations comprising:

generating, by at least one processor communicably coupled to said memory and using a mapping graph creator, a mapping graph by parsing the plurality of mapping ontologies for the one or more source information sets to obtain the one or more target information sets, wherein the mapping graph having a plurality of nodes arranged according to an execution flow; and

generating, by the at least one processor using a mapping graph executor, the one or more target information sets by traversing, at runtime execution, the mapping graph according to the execution flow to evaluate mapping rules and the expression graphs, included in the mapping graph, to map from the one or more source information sets to the one or more target information sets,

wherein multiple sources of various Multipurpose Internet Mail Extension (MIME) types can be accessed as the one or more source information sets, and

wherein the mapping graph includes a plurality of nodes in which (a) the nodes representing ones of the plurality of mapping ontologies is a first set of nodes, (b) a second set of nodes represent respective conditional expressions, and (c) a connection between a first node and a second node, of the plurality of nodes, represent a respective parent-child relationship between the first node and the second node.

21. The non-transitory computer-readable storage medium according to claim 20 , wherein the memory further stores a plurality of mapping resolvers, each of the first and second declarative expressions being associated with at least one of the stored mapping resolvers for accessing one or more information sets, and wherein the traversing includes, at respective nodes, of the plurality of nodes, of the mapping graph, executing the corresponding resolvers to map information from a source one of the information sets to a target one of the information sets.

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 Oct 9, 2015
From: KUMAR, ROSHAN; BAISWAR, GYANENDRA SINGH
To: SOFTWARE AG
Reel/Frame 036828/0522 →
Continuity (1)
Related Publication 20170103143A1 · Apr 13, 2017
Cited By (86)
US 12,206,696 US 12,244,621 US 12,267,345 US 12,309,185 US 12,323,449 US 12,335,286 US 12,335,348 US 12,341,797 US 12,348,545 US 12,355,626 US 12,355,787 US 12,355,793 US 12,363,148 US 12,368,745 US 12,368,746 US 12,368,747 US 12,375,573 US 12,395,573 US 12,401,669 US 12,405,849 US 12,407,701 US 12,407,702 US 12,418,552 US 12,418,555 US 12,425,428 US 12,425,430 US 12,445,474 US 12,452,279 US 12,457,231 US 12,463,995 US 12,463,996 US 12,463,997 US 12,464,003 US 12,470,577 US 12,470,578 US 12,483,576 US 12,489,770 US 12,495,052 US 12,500,910 US 12,500,911 US 12,500,912 US 12,505,126 US 12,506,762 US 12,513,221 US 12,537,836 US 12,537,837 US 12,537,839 US 12,537,840 US 12,537,884 US 12,549,575 US 12,549,577 US 12,556,548 US 12,556,559 US 12,563,060 US 12,563,064 US 12,563,071 US 12,563,072 US 12,580,934 US 12,580,935 US 12,580,936 US 12,580,937 US 12,587,553 US 12,592,950 US 12,598,205 US 12,613,930 US 12,615,271 US 12,621,324 US 12,621,329 US 12,627,686 US 12,627,687 US 12,627,690 US 12,634,312 US 12,634,376 US 12,652,302 US 12,659,325 US 12,659,326 US 12,659,327 US 12,659,333 US 12,676,874 US 12,689,638 US 12,689,640 US 12,695,768 US 12,706,932 US 12,706,933 US 12,712,897 US 12,719,896