Files
logseq/assets/sle23-paper45_1692364245116_0.edn
2025-06-05 22:07:12 +02:00

1739 lines
94 KiB
Clojure
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{:highlights [{:id #uuid "64df790e-9950-416b-86a2-f97f6900ece8",
:page 1,
:position {:bounding {:x1 0,
:y1 26.5,
:x2 500.04083251953125,
:y2 313.9921875,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 0,
:y1 26.5,
:x2 0,
:y2 43.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 40.5,
:x2 0,
:y2 57.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 164.20050048828125,
:y1 264.28125,
:x2 500.040283203125,
:y2 280.78125,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.6015625,
:y1 280.8828125,
:x2 500.04083251953125,
:y2 297.3828125,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.6015625,
:y1 297.4921875,
:x2 195.48516845703125,
:y2 313.9921875,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 1},
:content {:text "Model comparison is a prerequisite task for several other model management tasks such as model merging, model differencing etc."},
:properties {:color "green"}}
{:id #uuid "64df791f-c419-4205-86ed-a7ad61e45aad",
:page 1,
:position {:bounding {:x1 0,
:y1 68.5,
:x2 500.04345703125,
:y2 347.1953125,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 0,
:y1 68.5,
:x2 0,
:y2 85.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.6015625,
:y1 314.09375,
:x2 500.04345703125,
:y2 330.59375,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.6015625,
:y1 330.6953125,
:x2 217.733154296875,
:y2 347.1953125,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 1},
:content {:text "compare models using programs written in a rule-based model comparison languag"},
:properties {:color "green"}}
{:id #uuid "64df7945-7c06-41b6-9b9a-41a37db96fb0",
:page 1,
:position {:bounding {:x1 0,
:y1 236.5,
:x2 500.0311279296875,
:y2 579.65625,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 0,
:y1 236.5,
:x2 0,
:y2 253.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 250.5,
:x2 0,
:y2 267.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 264.5,
:x2 0,
:y2 281.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 307.0429992675781,
:y1 513.34375,
:x2 500.0311279296875,
:y2 529.84375,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.6015625,
:y1 529.953125,
:x2 500.0281982421875,
:y2 546.453125,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.6015625,
:y1 546.5546875,
:x2 500.03033447265625,
:y2 563.0546875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.6015625,
:y1 563.15625,
:x2 275.14501953125,
:y2 579.65625,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 1},
:content {:text "Our experiments demonstrate that the proposed model comparison approach delivers significant performance benefits in terms of execution time compared to the default ECL execution engine"},
:properties {:color "purple"}}
{:id #uuid "64df796a-bf9b-45e0-a886-2a521239f604",
:page 1,
:position {:bounding {:x1 0,
:y1 334.5,
:x2 502.793212890625,
:y2 739.0703125,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 0,
:y1 334.5,
:x2 0,
:y2 351.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 348.5,
:x2 0,
:y2 365.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 362.5,
:x2 0,
:y2 379.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 98.2109375,
:y1 660.796875,
:x2 502.793212890625,
:y2 679.296875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.6015625,
:y1 680.71875,
:x2 502.11767578125,
:y2 699.21875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.6015625,
:y1 700.6484375,
:x2 500.0394287109375,
:y2 719.1484375,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.6015625,
:y1 720.5703125,
:x2 178.92437744140625,
:y2 739.0703125,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 1},
:content {:text "While there is increased adoption of Model-Driven Engineering (MDE) principles, tools and technologies in industry [1], going forward scalability of these tools remains one of the key challenge"},
:properties {:color "green"}}
{:id #uuid "64df7972-80c3-4eda-ab22-0f795de1d9ad",
:page 1,
:position {:bounding {:x1 0,
:y1 390.5,
:x2 500.028564453125,
:y2 778.921875,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 0,
:y1 390.5,
:x2 0,
:y2 407.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 191.83712768554688,
:y1 740.5,
:x2 500.028564453125,
:y2 759,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.6015625,
:y1 760.421875,
:x2 137.9627685546875,
:y2 778.921875,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 1},
:content {:text "essential to make MDE tools and technologies scalable"},
:properties {:color "green"}}
{:id #uuid "64df79a5-b5f0-4440-b960-b860d9132d39",
:page 1,
:position {:bounding {:x1 0,
:y1 600.5,
:x2 500.040771484375,
:y2 1137.890625,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 0,
:y1 600.5,
:x2 0,
:y2 617.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 614.5,
:x2 0,
:y2 631.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 628.5,
:x2 0,
:y2 645.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 642.5,
:x2 0,
:y2 659.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 290.798095703125,
:y1 1039.6953125,
:x2 500.0335693359375,
:y2 1058.1953125,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.6015625,
:y1 1059.6171875,
:x2 500.0369873046875,
:y2 1078.1171875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.6015625,
:y1 1079.546875,
:x2 500.0389404296875,
:y2 1098.046875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.6015625,
:y1 1099.46875,
:x2 500.040771484375,
:y2 1117.96875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.6015625,
:y1 1119.390625,
:x2 149.02813720703125,
:y2 1137.890625,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 1},
:content {:text "Such model comparison can be computationally very expensive because each element of the first model needs to be traversed and compared to a corresponding element of the second model, which does not scale well"},
:properties {:color "blue"}}
{:id #uuid "64df79ad-dbf7-4f3a-a90f-5981648d1e06",
:page 1,
:position {:bounding {:x1 0,
:y1 670.5,
:x2 502.79693603515625,
:y2 1197.984375,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 0,
:y1 670.5,
:x2 0,
:y2 687.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 684.5,
:x2 0,
:y2 701.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 98.2109375,
:y1 1139.6328125,
:x2 500.036376953125,
:y2 1158.1328125,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.6015625,
:y1 1159.5625,
:x2 502.79693603515625,
:y2 1178.0625,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.6015625,
:y1 1179.484375,
:x2 184.38720703125,
:y2 1197.984375,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 1},
:content {:text "In this paper, we introduce an efficient model comparison approach based on static program analysis and automated program rewriting. "},
:properties {:color "purple"}}
{:id #uuid "64df79f5-fe24-4e26-8179-76d06b73daca",
:page 1,
:position {:bounding {:x1 0,
:y1 521.953125,
:x2 938.393798828125,
:y2 925.5,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 619.189453125,
:y1 521.953125,
:x2 937.5416259765625,
:y2 540.453125,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 519.9609375,
:y1 541.875,
:x2 938.393798828125,
:y2 560.375,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 519.9609375,
:y1 561.796875,
:x2 682.63330078125,
:y2 580.296875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 894.5,
:x2 0,
:y2 911.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 908.5,
:x2 0,
:y2 925.5,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 1},
:content {:text "The output of an ECL program is a match trace that contains all the established results of matches between elements of two models."},
:properties {:color "green"}}
{:id #uuid "64df7a01-f3b2-4fa8-b957-2dee106bc18f",
:page 1,
:position {:bounding {:x1 0,
:y1 621.8203125,
:x2 938.4013671875,
:y2 995.5,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 536.5625,
:y1 621.8203125,
:x2 938.4013671875,
:y2 640.3203125,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 519.9609375,
:y1 641.75,
:x2 938.3978271484375,
:y2 660.25,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 519.9609375,
:y1 661.671875,
:x2 592.357666015625,
:y2 680.171875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 964.5,
:x2 0,
:y2 981.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 978.5,
:x2 0,
:y2 995.5,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 1},
:content {:text "Our proposed approach has shown performance gains up to95% in terms of execution time in the experiments we have conducted."},
:properties {:color "purple"}}
{:id #uuid "64df7a6d-2621-4e88-885f-b06a2d3e9661",
:page 1,
:position {:bounding {:x1 0,
:y1 1119.7109375,
:x2 941.2886962890625,
:y2 1303.5,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 681.5527954101562,
:y1 1119.7109375,
:x2 941.1600341796875,
:y2 1138.2109375,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 519.9609375,
:y1 1139.6328125,
:x2 941.2886962890625,
:y2 1158.1328125,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 1286.5,
:x2 0,
:y2 1303.5,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 1},
:content {:text "Model comparison establishes correspondences between matching elements of two models [5]."},
:properties {:color "green"}}
{:id #uuid "64df7a8d-2f9e-4198-93e0-04c52150fa03",
:page 2,
:position {:bounding {:x1 99.91961669921875,
:y1 83.59375,
:x2 502.93212890625,
:y2 102.09375,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 99.91961669921875,
:y1 83.59375,
:x2 502.93212890625,
:y2 102.09375,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 2},
:content {:text "identify matching elements before merging two models."},
:properties {:color "green"}}
{:id #uuid "64df7a98-9143-4d8c-8876-1e31a9aca768",
:page 2,
:position {:bounding {:x1 0,
:y1 40.5,
:x2 500.03271484375,
:y2 201.71875,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 0,
:y1 40.5,
:x2 0,
:y2 57.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 54.5,
:x2 0,
:y2 71.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 153.14767456054688,
:y1 143.3671875,
:x2 500.029052734375,
:y2 161.8671875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.6015625,
:y1 163.296875,
:x2 500.03271484375,
:y2 181.796875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.6015625,
:y1 183.21875,
:x2 159.97381591796875,
:y2 201.71875,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 2},
:content {:text "model comparison can be used in order to establish matching elements before calculating the differences between two models"},
:properties {:color "yellow"}}
{:id #uuid "64df7b3d-c275-4c03-9167-68c0e7794857",
:page 2,
:position {:bounding {:x1 0,
:y1 418.5,
:x2 500.6163330078125,
:y2 803,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 0,
:y1 418.5,
:x2 0,
:y2 435.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 432.5,
:x2 0,
:y2 449.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 446.5,
:x2 0,
:y2 463.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 260.07586669921875,
:y1 724.71875,
:x2 499.4674072265625,
:y2 743.21875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.6015625,
:y1 744.6484375,
:x2 500.6163330078125,
:y2 763.1484375,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.6015625,
:y1 764.5703125,
:x2 500.0399169921875,
:y2 783.0703125,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.6015625,
:y1 784.5,
:x2 136.9002685546875,
:y2 803,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 2},
:content {:text "ECL lets developers specify custom comparison algorithms in a rule-based script to identify matching elements between homogeneous and heterogeneous models. "},
:properties {:color "green"}}
{:id #uuid "64df7dda-65cc-4e85-9f78-00669b2ecb38",
:page 4,
:position {:bounding {:x1 0,
:y1 768.5,
:x2 500.05126953125,
:y2 1138.2109375,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 0,
:y1 768.5,
:x2 0,
:y2 785.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 782.5,
:x2 0,
:y2 799.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 796.5,
:x2 0,
:y2 813.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 810.5,
:x2 0,
:y2 827.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 98.2109375,
:y1 1040.0078125,
:x2 499.4215087890625,
:y2 1058.5078125,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.6015625,
:y1 1059.9375,
:x2 500.05126953125,
:y2 1078.4375,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.6015625,
:y1 1079.859375,
:x2 499.7509765625,
:y2 1098.359375,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.6015625,
:y1 1099.78125,
:x2 500.0345458984375,
:y2 1118.28125,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.0546875,
:y1 1119.7109375,
:x2 228.90042114257812,
:y2 1138.2109375,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 4},
:content {:text "The default execution engine of ECL will compare each instance of the left parameter (i.e., Lifeline) to all the instances of the right parameter (i.e., Class). The complexity of this rule here would be O(M×N), if there are M number of Lifelines and N number of Classes."},
:properties {:color "yellow"}}
{:id #uuid "64df8011-ce6c-4df0-8e3a-49981219ddca",
:page 4,
:position {:bounding {:x1 0,
:y1 83.59375,
:x2 941.8125,
:y2 925.5,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 519.9609375,
:y1 83.59375,
:x2 941.8125,
:y2 102.09375,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 519.9609375,
:y1 103.5234375,
:x2 938.3975219726562,
:y2 122.0234375,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 519.9609375,
:y1 123.4453125,
:x2 938.3895263671875,
:y2 141.9453125,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 519.9609375,
:y1 143.3671875,
:x2 653.6506958007812,
:y2 161.8671875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 880.5,
:x2 0,
:y2 897.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 894.5,
:x2 0,
:y2 911.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 908.5,
:x2 0,
:y2 925.5,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 4},
:content {:text "Classes so there will be 6 matches for the rule Lifeline2Class. In the rule Lifeline2Class, we can filter the Class instances only keeping ones where the name of the class is equal to the type of the Lifeline."},
:properties {:color "green"}}
{:id #uuid "64df805a-a292-4387-a930-f9919c2dd942",
:page 4,
:position {:bounding {:x1 133.7421875,
:y1 561.5078125,
:x2 245.33139038085938,
:y2 576.5078125,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 133.7421875,
:y1 561.5078125,
:x2 245.33139038085938,
:y2 576.5078125,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 4},
:content {:text "compare : true"},
:properties {:color "yellow"}}
{:id #uuid "64df805d-227e-4ee5-b73e-18a69ea0669d",
:page 4,
:position {:bounding {:x1 149.6796875,
:y1 681.0625,
:x2 261.2688903808594,
:y2 696.0625,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 149.6796875,
:y1 681.0625,
:x2 261.2688903808594,
:y2 696.0625,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 4},
:content {:text "compare : true"},
:properties {:color "yellow"}}
{:id #uuid "64df8060-46c0-4296-b43f-b885b3ffe819",
:page 4,
:position {:bounding {:x1 149.6796875,
:y1 815.5546875,
:x2 269.2421875,
:y2 830.5546875,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 149.6796875,
:y1 815.5546875,
:x2 269.2421875,
:y2 830.5546875,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 4},
:content {:text "compare : true "},
:properties {:color "yellow"}}
{:id #uuid "64df8108-5c9d-42a1-a914-0dbf6286f4d1",
:page 4,
:position {:bounding {:x1 0,
:y1 416.0859375,
:x2 937.8275146484375,
:y2 1121.5,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 519.9609375,
:y1 416.0859375,
:x2 937.8275146484375,
:y2 434.5859375,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 519.9609375,
:y1 436.0078125,
:x2 578.080322265625,
:y2 454.5078125,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 1104.5,
:x2 0,
:y2 1121.5,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 4},
:content {:text "optimise ECL matching programs automatically using program analysis"},
:properties {:color "green"}}
{:id #uuid "64df84b2-1c45-423c-8643-dfd9a95e481e",
:page 4,
:position {:bounding {:x1 0,
:y1 635.234375,
:x2 938.4302978515625,
:y2 1317.5,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 565.8251342773438,
:y1 635.234375,
:x2 938.1500854492188,
:y2 653.734375,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 519.9921875,
:y1 655.171875,
:x2 938.4302978515625,
:y2 673.671875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 519.9921875,
:y1 675.1015625,
:x2 937.8340454101562,
:y2 693.6015625,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 519.9921875,
:y1 695.03125,
:x2 938.423583984375,
:y2 713.53125,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 519.9921875,
:y1 714.9609375,
:x2 585.5692138671875,
:y2 733.4609375,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 1258.5,
:x2 0,
:y2 1275.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 1272.5,
:x2 0,
:y2 1289.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 1286.5,
:x2 0,
:y2 1303.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 1300.5,
:x2 0,
:y2 1317.5,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 4},
:content {:text "This is because we do not compare all instances of left parameter to all instances of right parameter (which is done in existing ECL execution), rather we compare instances of left parameter to pre-filtered/pre-indexed instances of the right parameter"},
:properties {:color "green"}}
{:id #uuid "64df8505-52f9-4ad8-ad0e-72a3bac7d33f",
:page 4,
:position {:bounding {:x1 0,
:y1 1138.2890625,
:x2 938.4209594726562,
:y2 1625.5,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 693.5112915039062,
:y1 1138.2890625,
:x2 938.4209594726562,
:y2 1156.7890625,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 519.9921875,
:y1 1159.5390625,
:x2 827.9993896484375,
:y2 1178.0390625,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 1608.5,
:x2 0,
:y2 1625.5,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 4},
:content {:text "his step identifies optimisable match rules along with the specific property name."},
:properties {:color "green"}}
{:id #uuid "64df8522-e60a-4ca4-a096-fa215ea8a83a",
:page 5,
:position {:bounding {:x1 81.59375,
:y1 595.2421875,
:x2 498.7452087402344,
:y2 613.7421875,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 81.59375,
:y1 595.2421875,
:x2 498.7452087402344,
:y2 613.7421875,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 5},
:content {:text "optimised program along with the new order of the match rules"},
:properties {:color "yellow"}}
{:id #uuid "64df8565-febe-429f-a916-ed10fa6cffb5",
:page 5,
:position {:bounding {:x1 0,
:y1 26.5,
:x2 500.8397216796875,
:y2 753.265625,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 0,
:y1 26.5,
:x2 0,
:y2 43.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 40.5,
:x2 0,
:y2 57.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 54.5,
:x2 0,
:y2 71.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 68.5,
:x2 0,
:y2 85.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 82.5,
:x2 0,
:y2 99.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 96.5,
:x2 0,
:y2 113.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.0859375,
:y1 615.171875,
:x2 500.6124267578125,
:y2 633.671875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.59375,
:y1 635.1015625,
:x2 499.170654296875,
:y2 653.6015625,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.59375,
:y1 655.0390625,
:x2 500.0287780761719,
:y2 673.5390625,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.59375,
:y1 674.96875,
:x2 499.7478942871094,
:y2 693.46875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.59375,
:y1 694.8984375,
:x2 500.8397216796875,
:y2 713.3984375,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.59375,
:y1 714.8359375,
:x2 500.0250549316406,
:y2 733.3359375,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.59375,
:y1 734.765625,
:x2 197.8953399658203,
:y2 753.265625,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 5},
:content {:text "This optimised comparison program will then be executed by the existing ECL engine. The resultant match trace would be a subset of the trace that would have been produced by the original comparison program. This subset trace would exclude the matches which would not satisfy the domain (an EOL expression to narrow the search space), while including all positive matches."},
:properties {:color "yellow"}}
{:id #uuid "64df85f8-adbb-4970-83e1-c79a6bc74310",
:page 5,
:position {:bounding {:x1 122.24944305419922,
:y1 890.65625,
:x2 210.3451385498047,
:y2 909.15625,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 122.24944305419922,
:y1 890.65625,
:x2 210.3451385498047,
:y2 909.15625,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 5},
:content {:text "(1-3 and 5-7)"},
:properties {:color "red"}}
{:id #uuid "64df8690-1ed4-4792-a05d-ecfc4a9c2831",
:page 11,
:position {:bounding {:x1 0,
:y1 628.5,
:x2 499.4815979003906,
:y2 818.40625,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 0,
:y1 628.5,
:x2 0,
:y2 645.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 357.6136779785156,
:y1 788.359375,
:x2 499.4815979003906,
:y2 803.359375,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 111.9921875,
:y1 803.40625,
:x2 361.0625,
:y2 818.40625,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 11},
:content {:text "Selective traceability for rule-based model-to-model transformations"},
:properties {:color "green"}}
{:id #uuid "64df8769-f43c-429a-9916-8f4d192ee55f",
:page 6,
:position {:bounding {:x1 0,
:y1 250.5,
:x2 500.2964630126953,
:y2 719.734375,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 0,
:y1 250.5,
:x2 0,
:y2 267.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 264.5,
:x2 0,
:y2 281.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 227.51112365722656,
:y1 661.375,
:x2 500.2964630126953,
:y2 679.875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.59375,
:y1 681.3046875,
:x2 500.03424072265625,
:y2 699.8046875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.59375,
:y1 701.234375,
:x2 452.3593444824219,
:y2 719.734375,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 6},
:content {:text "he reason for extracting the dependency graph is to reorder the rules in a way that if MRx is invoked by a rule MRy then MRy is scheduled before MRx."},
:properties {:color "yellow"}}
{:id #uuid "64df8b88-f9cf-4e58-9fee-ca5d6bdc3272",
:page 6,
:position {:bounding {:x1 0,
:y1 108.6875,
:x2 941.0941162109375,
:y2 769.5,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 546.3230590820312,
:y1 108.6875,
:x2 941.0941162109375,
:y2 127.1875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 519.9921875,
:y1 128.6171875,
:x2 937.2235717773438,
:y2 147.1171875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 519.3828125,
:y1 148.5546875,
:x2 685.7598266601562,
:y2 167.0546875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 734.5,
:x2 0,
:y2 753.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 750.5,
:x2 0,
:y2 769.5,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 6},
:content {:text "his is the third step of the approach that takes in a typeresolved AST as an input with the aim to identify the rules which can be optimised"},
:properties {:color "green"}}
{:id #uuid "64df8b9f-f391-467b-9feb-04095ce1d102",
:page 6,
:position {:bounding {:x1 661.72998046875,
:y1 327.8046875,
:x2 703.35498046875,
:y2 346.3046875,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 661.72998046875,
:y1 327.8046875,
:x2 703.35498046875,
:y2 346.3046875,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 6},
:content {:text "DOM "},
:properties {:color "yellow"}}
{:id #uuid "64df90c9-d494-46ba-b375-0b9483158ac7",
:page 6,
:position {:bounding {:x1 613.5234375,
:y1 563.1640625,
:x2 908.88623046875,
:y2 581.6640625,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 613.5234375,
:y1 563.1640625,
:x2 908.88623046875,
:y2 581.6640625,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 6},
:content {:text "Algorithm for Identifying optimisable rules"},
:properties {:color "yellow"}}
{:id #uuid "64df90f4-5d05-4d8b-aa04-17ee2e17617f",
:page 6,
:position {:bounding {:x1 0,
:y1 1119.6796875,
:x2 941.2858276367188,
:y2 1537.5,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 519.28125,
:y1 1119.6796875,
:x2 941.2858276367188,
:y2 1138.1796875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 519.9921875,
:y1 1139.609375,
:x2 938.36083984375,
:y2 1158.109375,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 519.9921875,
:y1 1159.5390625,
:x2 621.5416259765625,
:y2 1178.0390625,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 1502.5,
:x2 0,
:y2 1521.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 1518.5,
:x2 0,
:y2 1537.5,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 6},
:content {:text "MR1, MR2.., MRn along with the specific properties say p1, p2.., pn on the basis of which we are comparing the elements in the compare block."},
:properties {:color "yellow"}}
{:id #uuid "64df9143-e7a8-4a8d-99e8-ac8890cd09a1",
:page 7,
:position {:bounding {:x1 0,
:y1 900.5546875,
:x2 937.8291625976562,
:y2 1345.5,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 618.9790649414062,
:y1 900.5546875,
:x2 937.8291625976562,
:y2 919.0546875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 519.9921875,
:y1 920.484375,
:x2 937.301513671875,
:y2 938.984375,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 519.3828125,
:y1 940.421875,
:x2 779.7924194335938,
:y2 958.921875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 1310.5,
:x2 0,
:y2 1329.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 1326.5,
:x2 0,
:y2 1345.5,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 7},
:content {:text " execution time of the original ECL programs using the existing ECL engine with the rewritten ECL programs(also using the existing ECL engine)."},
:properties {:color "green"}}
{:id #uuid "64df9168-c16e-4b74-98fa-c434850b09c1",
:page 7,
:position {:bounding {:x1 582.0357666015625,
:y1 960.3515625,
:x2 817.1041870117188,
:y2 978.8515625,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 582.0357666015625,
:y1 960.3515625,
:x2 817.1041870117188,
:y2 978.8515625,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 7},
:content {:text "parallel execution of ECL programs"},
:properties {:color "yellow"}}
{:id #uuid "64df92b0-3755-461a-a516-a4cd3506e5bd",
:page 7,
:position {:bounding {:x1 0,
:y1 1000.21875,
:x2 938.4263916015625,
:y2 1409.5,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 849.988525390625,
:y1 1000.21875,
:x2 938.4263916015625,
:y2 1018.71875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 519.9921875,
:y1 1020.1484375,
:x2 869.7584838867188,
:y2 1038.6484375,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 1390.5,
:x2 0,
:y2 1409.5,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 7},
:content {:text "dentifies the independent rules that can be executed in parallel"},
:properties {:color "green"}}
{:id #uuid "64df92e8-0d41-446f-b418-4e7d375dd2c2",
:page 8,
:position {:bounding {:x1 98.20948791503906,
:y1 436.1796875,
:x2 469.56629943847656,
:y2 454.6796875,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 98.20948791503906,
:y1 436.1796875,
:x2 469.56629943847656,
:y2 454.6796875,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 8},
:content {:text "object oriented (OO) models with database (DB) models"},
:properties {:color "green"}}
{:id #uuid "64df92fe-fc01-48c5-b212-a5b3cd2cdf14",
:page 11,
:position {:bounding {:x1 0,
:y1 814.5,
:x2 499.7538146972656,
:y2 908.953125,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 0,
:y1 814.5,
:x2 0,
:y2 833.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 363.16534423828125,
:y1 878.90625,
:x2 499.7538146972656,
:y2 893.90625,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 111.9921875,
:y1 893.953125,
:x2 459.8224182128906,
:y2 908.953125,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 11},
:content {:text "Sega4biz: Model-driven framework for developing serious games for business processes"},
:properties {:color "green"}}
{:id #uuid "64df94b0-5588-4429-a20b-77e7d267c062",
:page 9,
:position {:bounding {:x1 550.4921875,
:y1 1036.78125,
:x2 907.8895263671875,
:y2 1051.78125,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 550.4921875,
:y1 1036.78125,
:x2 907.8895263671875,
:y2 1051.78125,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 9},
:content {:text "Figure 7. Comparison of Execution time in OO DB Comparison"},
:properties {:color "yellow"}}
{:id #uuid "64df94e8-7bf1-4c2c-8e99-8da40b395056",
:page 9,
:position {:bounding {:x1 0,
:y1 638.5,
:x2 500.0477294921875,
:y2 1158.109375,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 0,
:y1 638.5,
:x2 0,
:y2 657.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 98.21875,
:y1 1119.6796875,
:x2 500.0477294921875,
:y2 1138.1796875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 81.59375,
:y1 1139.609375,
:x2 265.4541015625,
:y2 1158.109375,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 9},
:content {:text "This performance gain is achieved by reducing the search space needed for matching. "},
:properties {:color "blue"}}
{:id #uuid "64df94f4-add5-46f3-b38b-f1ad1e29ad56",
:page 8,
:position {:bounding {:x1 0,
:y1 87.4375,
:x2 877.8899536132812,
:y2 1198.296875,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 548.140625,
:y1 87.4375,
:x2 556.1171875,
:y2 102.4375,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 535.703125,
:y1 90.34375,
:x2 542.1953125,
:y2 99.84375,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 535.703125,
:y1 105.390625,
:x2 540.3203125,
:y2 114.890625,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 548.140625,
:y1 117.265625,
:x2 675.6964111328125,
:y2 132.265625,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 535.703125,
:y1 120.3046875,
:x2 542.1953125,
:y2 129.8046875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 548.140625,
:y1 132.1875,
:x2 691.6705322265625,
:y2 147.1875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 535.703125,
:y1 135.21875,
:x2 542.1953125,
:y2 144.71875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 548.140625,
:y1 147.234375,
:x2 683.7174072265625,
:y2 162.234375,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 535.703125,
:y1 150.1328125,
:x2 542.1953125,
:y2 159.6328125,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 548.140625,
:y1 162.1484375,
:x2 835.1031494140625,
:y2 177.1484375,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 535.703125,
:y1 165.0546875,
:x2 542.1953125,
:y2 174.5546875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 581.3984375,
:y1 177.0625,
:x2 677.09375,
:y2 192.0625,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 564.15625,
:y1 191.9765625,
:x2 675.7063598632812,
:y2 206.9765625,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 531.6171875,
:y1 195.015625,
:x2 542.1953125,
:y2 204.515625,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 548.140625,
:y1 207.03125,
:x2 556.1171875,
:y2 222.03125,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 531.6171875,
:y1 209.9296875,
:x2 542.1953125,
:y2 219.4296875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 531.6171875,
:y1 224.8515625,
:x2 539.92138671875,
:y2 234.3515625,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 548.140625,
:y1 236.859375,
:x2 715.552001953125,
:y2 251.859375,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 531.6171875,
:y1 239.765625,
:x2 542.1953125,
:y2 249.265625,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 548.140625,
:y1 251.7734375,
:x2 723.5487670898438,
:y2 266.7734375,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 531.6171875,
:y1 254.8125,
:x2 542.1953125,
:y2 264.3125,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 548.140625,
:y1 266.6953125,
:x2 691.6869506835938,
:y2 281.6953125,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 531.6171875,
:y1 269.7265625,
:x2 542.1953125,
:y2 279.2265625,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 548.140625,
:y1 281.7421875,
:x2 874.9859619140625,
:y2 296.7421875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 531.6171875,
:y1 284.640625,
:x2 542.1953125,
:y2 294.140625,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 581.3984375,
:y1 296.65625,
:x2 677.09375,
:y2 311.65625,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 564.15625,
:y1 311.5703125,
:x2 858.9910888671875,
:y2 326.5703125,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 531.6171875,
:y1 314.609375,
:x2 542.1953125,
:y2 324.109375,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 597.3046875,
:y1 326.484375,
:x2 645.1298828125,
:y2 341.484375,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 548.140625,
:y1 341.40625,
:x2 556.1171875,
:y2 356.40625,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 531.6171875,
:y1 344.4375,
:x2 542.1953125,
:y2 353.9375,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 579.96875,
:y1 382.5859375,
:x2 877.8899536132812,
:y2 397.5859375,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 814.5,
:x2 0,
:y2 833.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 830.5,
:x2 0,
:y2 849.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 846.5,
:x2 0,
:y2 865.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 862.5,
:x2 0,
:y2 881.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 878.5,
:x2 0,
:y2 897.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 894.5,
:x2 0,
:y2 913.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 910.5,
:x2 0,
:y2 929.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 926.5,
:x2 0,
:y2 945.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 942.5,
:x2 0,
:y2 961.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 958.5,
:x2 0,
:y2 977.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 974.5,
:x2 0,
:y2 993.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 990.5,
:x2 0,
:y2 1009.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 1006.5,
:x2 0,
:y2 1025.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 1022.5,
:x2 0,
:y2 1041.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 1038.5,
:x2 0,
:y2 1057.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 1054.5,
:x2 0,
:y2 1073.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 1070.5,
:x2 0,
:y2 1089.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 1086.5,
:x2 0,
:y2 1105.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 1102.5,
:x2 0,
:y2 1121.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 1118.5,
:x2 0,
:y2 1137.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 109.8515625,
:y1 1123.5078125,
:x2 149.6484375,
:y2 1138.5078125,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 1134.5,
:x2 0,
:y2 1153.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 125.765625,
:y1 1138.421875,
:x2 444.5778503417969,
:y2 1153.421875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 97.40625,
:y1 1141.453125,
:x2 103.796875,
:y2 1150.953125,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 1150.5,
:x2 0,
:y2 1169.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 159.015625,
:y1 1153.46875,
:x2 302.4832763671875,
:y2 1168.46875,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 1166.5,
:x2 0,
:y2 1185.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 125.765625,
:y1 1168.3828125,
:x2 444.6050720214844,
:y2 1183.3828125,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 97.40625,
:y1 1171.2890625,
:x2 103.796875,
:y2 1180.7890625,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 159.015625,
:y1 1183.296875,
:x2 350.30059814453125,
:y2 1198.296875,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 8},
:content {:text "pre {2 var Class2TableMap = DB!Table.all.mapBy( param|param.name);3 var Attribute2ColumnMap = DB!Column.all. mapBy(param|param.name);4 }56 rule Class2Table7 match l : OO!Class8 with r : DB!Table9 from : Class2TableMap.get(l.name) ?: Sequence{} {10 compare : true11 }1213 rule Attribute2Column14 match l : OO!Attribute15 with r : DB!Column16 from : Attribute2ColumnMap.get(l.name) ?: Sequence{} {17 compare : true and l.owner.matches(r. table)18 } Listing 4. ECL rewritten program for OO-DB models"},
:properties {:color "yellow"}}
{:id #uuid "64df9571-6094-4913-930e-5ebf28f578d7",
:page 10,
:position {:bounding {:x1 0,
:y1 889.3359375,
:x2 940.5052490234375,
:y2 1313.5,
:width 1019.9999999999999,
:height 1319.9999999999998},
:rects ({:x1 536.7743530273438,
:y1 889.3359375,
:x2 940.5052490234375,
:y2 907.8359375,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 519.9921875,
:y1 909.1328125,
:x2 938.4276733398438,
:y2 927.6328125,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 519.9921875,
:y1 929.0703125,
:x2 765.1624755859375,
:y2 947.5703125,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 1278.5,
:x2 0,
:y2 1297.5,
:width 1019.9999999999999,
:height 1319.9999999999998}
{:x1 0,
:y1 1294.5,
:x2 0,
:y2 1313.5,
:width 1019.9999999999999,
:height 1319.9999999999998}),
:page 10},
:content {:text "execute independent rules before those dependent on them, optimizing the comparison process by reducing the cost of jumping between comparison rules. "},
:properties {:color "yellow"}}],
:extra {:page 1}}