IP Library Granted Patent US 12,175,213
Granted Patent B2
US 12,175,213 · App. 17/824,002 · Granted Dec 24, 2024

Mapping data models to facilitate code generation

Inventors: Edoardo Vacchi (Milan, IT); Paolo Antinori (Milan, IT)
Assignee: Red Hat, Inc.
G06F8/35
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 12,175,213
App. No.
17/824,002
Granted
Dec 24, 2024
Kind
B2
Abstract

In various examples disclosed herein, provided is a method for mapping data models to facilitate code generation. The method can include receiving a first file comprising a first data model of a first group of components and a second file comprising a second data model of a second group of components. The method can also include converting the first data model into a first intermediate data model. The method can also include converting the second data model into a second intermediate data model. The method can also include mapping the first intermediate data model to the second intermediate data model to generate a map of matching elements. The method can also include generating code to be executed based at least in part on the map of matching elements.

Claims (48)

1. A method comprising:

receiving, by a computing system comprising one or more processor devices of one or more computing devices, a first file comprising a first data model of a first group of components in a first notation syntax and a second file comprising a second data model of a second group of components in a second notation syntax;

converting the first data model of the first group of components into a first intermediate data model;

converting the second data model of the second group of components into a second intermediate data model;

mapping the first intermediate data model to the second intermediate data model, to generate a map of matching elements in the first intermediate data model and the second intermediate data model, wherein mapping the first intermediate data model to the second intermediate data model comprises:

determining that a Hamming distance between a first element of the first intermediate data model and a second element of the second intermediate data model is below a predetermined Hamming distance threshold;

mapping the first element of the first intermediate data model to the second element of the second intermediate data model, wherein the first element of the first intermediate data model comprises a first format associated with the first notation syntax, wherein the second element of the second intermediate data model comprises a second format associated with the second notation syntax different than the first format; and

generating code to be executed based at least in part on the map of matching elements, wherein the code comprises a reference of a first component in the first group of components to a second component in the second group of components.

2. The method of claim 1 , further comprising:

in response to a third element of the first intermediate data model and a fourth element of the second intermediate data model not satisfying a first matching threshold, determining one or more suggested pairings of elements from the first intermediate data model and the second intermediate data model, wherein the one or more suggested pairings of elements satisfy a second matching threshold.

3. The method of claim 2 , further comprising:

transmitting the one or more suggested pairings of elements to a device, wherein the one or more suggested pairings of elements are configured to be displayed on the device.

4. The method of claim 3 , further comprising:

receiving, from the device, user feedback comprising a selection of a pairing of elements of the one or more suggested pairings of elements; and

updating the map of matching elements based on the selection of the pairing of elements.

5. The method of claim 1 , wherein at least one of the first notation syntax and the second notation syntax are at least one of Decision Modeling and Notation (DMN) syntax, Business Process Model Notation (BPMN) syntax, Predictive Model Markup Language (PMML) syntax, and Drools Rule Language (DRL) syntax.

6. The method of claim 1 , wherein the first intermediate data model and the second intermediate data model are data models complying with an Interface Description Language (IDL).

7. The method of claim 6 , wherein the IDL is at least one of an XML Schema, a JSON Schema, an OpenAPI, Protocol Buffer, and Thrift.

8. The method of claim 1 , wherein mapping the first intermediate data model to the second intermediate data model is based at least in part on one of a heuristic-based mapping, a type-wise mapping, a telemetry-based mapping, and a historical/statistical mapping.

9. The method of claim 1 , wherein the code to be executed is based on at least one of the first intermediate data model and the second intermediate data model.

10. A computing system comprising:

one or more computing devices, the one or more computing devices comprising one or more processor devices, the one or more processor devices to:

receive a first file comprising a first data model of a first group of components in a first notation syntax and a second file comprising a second data model of a second group of components in a second notation syntax;

convert the first data model of the first group of components into a first intermediate data model;

convert the second data model of the second group of components into a second intermediate data model;

map the first intermediate data model to the second intermediate data model to generate a map of matching elements in the first intermediate data model and the second intermediate data model, wherein mapping the first intermediate data model to the second intermediate data model comprises:

determining that a Hamming distance between a first element of the first intermediate data model and a second element of the second intermediate data model is below a predetermined Hamming distance threshold; and

mapping the first element of the first intermediate data model to the second element of the second intermediate data model, wherein the first element of the first intermediate data model comprises a first format associated with the first notation syntax, wherein the second element of the second intermediate data model comprises a second format associated with the second notation syntax different than the first format; and

generate code to be executed based at least in part on the map of matching elements, wherein the code comprises a reference of a first component in the first group of components to a second component in the second group of components.

11. The computing system of claim 10 , wherein the one or more processor devices further:

determine one or more suggested pairings of elements from the first intermediate data model and the second intermediate data model in response to a third element of the first intermediate data model and a fourth element of the second intermediate data model not satisfying a first matching threshold, wherein the one or more suggested pairings of elements satisfy a second matching threshold.

12. The computing system of claim 11 , wherein the one or more processor devices further:

transmit the one or more suggested pairings of elements to a device, wherein the one or more suggested pairings of elements are configured to be displayed on the device.

13. The computing system of claim 12 , wherein the one or more processor devices further:

receive, from the device, user feedback comprising a selection of a pairing of elements of the one or more suggested pairings of elements; and

update the map of matching elements based on the selection of the pairing of elements.

14. The computing system of claim 10 , wherein mapping the first intermediate data model to the second intermediate data model is based at least in part on one of a heuristic-based mapping, a type-wise mapping, a telemetry-based mapping, and a historical/statistical mapping.

15. The computing system of claim 10 , wherein the code to be executed is based on at least one of the first intermediate data model and the second intermediate data model.

16. The computing system of claim 10 , wherein at least one of the first notation syntax and the second notation syntax are at least one of Decision Modeling and Notation (DMN) syntax, Business Process Model Notation (BPMN) syntax, Predictive Model Markup Language (PMML) syntax, and Drools Rule Language (DRL) syntax.

17. The computing system of claim 10 , wherein the first intermediate data model and the second intermediate data model are data models complying with an Interface Description Language (IDL).

18. A non-transitory computer-readable storage medium that includes executable instructions to cause one or more processor devices of one or more computing devices to:

receive a first file comprising a first data model of a first group of components in a first notation syntax and a second file comprising a second data model of a second group of components in a second notation syntax;

convert the first data model of the first group of components into a first intermediate data model;

convert the second data model of the second group of components into a second intermediate data model;

map the first intermediate data model to the second intermediate data model to generate a map of matching elements in the first intermediate data model and the second intermediate data model, wherein mapping the first intermediate data model to the second intermediate data model comprises:

determining that a Hamming distance between a first element of the first intermediate data model and a second element of the second intermediate data model is below a predetermined Hamming distance threshold; and

mapping the first element of the first intermediate data model to the second element of the second intermediate data model, wherein the first element of the first intermediate data model comprises a first format associated with the first notation syntax, wherein the second element of the second intermediate data model comprises a second format associated with the second notation syntax different than the first format; and

generate code to be executed based at least in part on the map of matching elements, wherein the code comprises a reference of a first component in the first group of components to a second component in the second group of components.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 25, 2022
From: VACCHI, EDOARDO; ANTINORI, PAOLO
To: RED HAT, INC.
Reel/Frame 060010/0348 →