Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » Epsilon » [EML] using EML for generic metamodel compositon
[EML] using EML for generic metamodel compositon [message #21222] Tue, 30 June 2009 09:41 Go to next message
Eclipse UserFriend
Originally posted by: ivanomalavolta.gmail.com

Hi,
I am investigating on how EML could be used for metamodels composition.
My idea is that of creating a set of generic composition operators and
use them in an extended EML model. I have some questions about that:

1) My composition operation can be considered a function that takes as
input "n" metamodels and returns as output their composition. Is it
possible to define EML models between "n" metamodels using ModeLink?

2) I am pretty expert in using AMW, but I am also very interested in
discovering EML's potentialities; also, in many articles in research EML
has been compared to AMW claiming that they "do the same things". Is
there someone expert in EML that enlights the detailed differences
between them?

Thank you,
Ivano
Re: [EML] using EML for generic metamodel compositon [message #21269 is a reply to message #21222] Tue, 30 June 2009 10:12 Go to previous messageGo to next message
Dimitrios Kolovos is currently offline Dimitrios KolovosFriend
Messages: 1776
Registered: July 2009
Senior Member
Hi Ivano,

Modelink is a generic multi-tab editor which is convenient for
establishing cross-model links. Unlike AMW, Modelink does not do
anything more than that, and the models it produces are proper EMF
models with proper cross-resource references. Once you have established
a model using Modelink you can then use it as you please from any
language in Epsilon.

The way EML works is the following: You first need to identify
correspondences (a match trace) between your models with ECL, and then
feed the match trace into EML to merge the two models on the identified
correspondences. The only reason why you'd want to use Modelink with EML
would be if it were not possible to identify the matches automatically
(using ECL). In this case, you'd need to establish matches manually,
then use ECL to transform them to a proper match trace and finally use
EML in order to merge them.

I hope this helps. If on the other hand this all doesn't make sense,
please let me know and I'll try to scribble a short tutorial that
demonstrates the two different approaches using concrete examples.

Regarding your n->1 metamodel composition scenario, couldn't you split
it into n-1 2->1 compositions where the result of the previous
composition is the input of the next one?

Cheers,
Dimitris

Ivano Malavolt wrote:
> Hi,
> I am investigating on how EML could be used for metamodels composition.
> My idea is that of creating a set of generic composition operators and
> use them in an extended EML model. I have some questions about that:
>
> 1) My composition operation can be considered a function that takes as
> input "n" metamodels and returns as output their composition. Is it
> possible to define EML models between "n" metamodels using ModeLink?
>
> 2) I am pretty expert in using AMW, but I am also very interested in
> discovering EML's potentialities; also, in many articles in research EML
> has been compared to AMW claiming that they "do the same things". Is
> there someone expert in EML that enlights the detailed differences
> between them?
>
> Thank you,
> Ivano
Re: [EML] using EML for generic metamodel compositon [message #21283 is a reply to message #21269] Tue, 30 June 2009 10:24 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: ivanomalavolta.gmail.com

Hi Dimitris,
first of all thank you for the quick reply :)

I got the difference between EML and AMW, but in my case is not such a
big one since I am assuming the the user always mateches the metamodels
manually.

Regarding the number of input metamodels, I already thought about the
n-1 2 -> 1 solution but that implies that the user knows the order in
which metamodels should be composed. I think that that can be automated,
easing the task of the user; it may consist in just checking the matches
between the various metaclasses and then automaticall establish an order
for "executing" them.

I do not know if I have been clear about that.. :)
For example, if I want to compose three metamodels A, B and C,
I'd like to compose them in "one-shot", like c(A, B, C) = D
and do not do something like this:
c(A, B, C) = c(c(A, B), C) = D

Of course, suggestions are very welcome is there is some more elegant
way to solve this problem!

Best,
Ivano




Dimitris Kolovos wrote:
> Hi Ivano,
>
> Modelink is a generic multi-tab editor which is convenient for
> establishing cross-model links. Unlike AMW, Modelink does not do
> anything more than that, and the models it produces are proper EMF
> models with proper cross-resource references. Once you have established
> a model using Modelink you can then use it as you please from any
> language in Epsilon.
>
> The way EML works is the following: You first need to identify
> correspondences (a match trace) between your models with ECL, and then
> feed the match trace into EML to merge the two models on the identified
> correspondences. The only reason why you'd want to use Modelink with EML
> would be if it were not possible to identify the matches automatically
> (using ECL). In this case, you'd need to establish matches manually,
> then use ECL to transform them to a proper match trace and finally use
> EML in order to merge them.
>
> I hope this helps. If on the other hand this all doesn't make sense,
> please let me know and I'll try to scribble a short tutorial that
> demonstrates the two different approaches using concrete examples.
>
> Regarding your n->1 metamodel composition scenario, couldn't you split
> it into n-1 2->1 compositions where the result of the previous
> composition is the input of the next one?
>
> Cheers,
> Dimitris
>
> Ivano Malavolt wrote:
>> Hi,
>> I am investigating on how EML could be used for metamodels composition.
>> My idea is that of creating a set of generic composition operators and
>> use them in an extended EML model. I have some questions about that:
>>
>> 1) My composition operation can be considered a function that takes as
>> input "n" metamodels and returns as output their composition. Is it
>> possible to define EML models between "n" metamodels using ModeLink?
>>
>> 2) I am pretty expert in using AMW, but I am also very interested in
>> discovering EML's potentialities; also, in many articles in research
>> EML has been compared to AMW claiming that they "do the same things".
>> Is there someone expert in EML that enlights the detailed differences
>> between them?
>>
>> Thank you,
>> Ivano
Re: [EML] using EML for generic metamodel compositon [message #21298 is a reply to message #21283] Tue, 30 June 2009 10:31 Go to previous messageGo to next message
Dimitrios Kolovos is currently offline Dimitrios KolovosFriend
Messages: 1776
Registered: July 2009
Senior Member
Hi Ivano,

To my understanding the order in which the n-1 2->1 merges should be
performed is not significant (i.e. changing the order should not affect
the final result). In terms of usability, you could hide this complexity
from the end user by doing this behind the scenes using a bit of custom
code: the user could then just select the n metamodels they want to
compose and you could just present them with the final result.

If you could share a concrete example (input metamodels and expected
output), I'd be happy to have a more detailed look into it.

Cheers,
Dimitris

Ivano Malavolta wrote:
> Hi Dimitris,
> first of all thank you for the quick reply :)
>
> I got the difference between EML and AMW, but in my case is not such a
> big one since I am assuming the the user always mateches the metamodels
> manually.
>
> Regarding the number of input metamodels, I already thought about the
> n-1 2 -> 1 solution but that implies that the user knows the order in
> which metamodels should be composed. I think that that can be automated,
> easing the task of the user; it may consist in just checking the matches
> between the various metaclasses and then automaticall establish an order
> for "executing" them.
>
> I do not know if I have been clear about that.. :)
> For example, if I want to compose three metamodels A, B and C,
> I'd like to compose them in "one-shot", like c(A, B, C) = D
> and do not do something like this:
> c(A, B, C) = c(c(A, B), C) = D
>
> Of course, suggestions are very welcome is there is some more elegant
> way to solve this problem!
>
> Best,
> Ivano
>
>
>
>
> Dimitris Kolovos wrote:
>> Hi Ivano,
>>
>> Modelink is a generic multi-tab editor which is convenient for
>> establishing cross-model links. Unlike AMW, Modelink does not do
>> anything more than that, and the models it produces are proper EMF
>> models with proper cross-resource references. Once you have
>> established a model using Modelink you can then use it as you please
>> from any language in Epsilon.
>>
>> The way EML works is the following: You first need to identify
>> correspondences (a match trace) between your models with ECL, and then
>> feed the match trace into EML to merge the two models on the
>> identified correspondences. The only reason why you'd want to use
>> Modelink with EML would be if it were not possible to identify the
>> matches automatically (using ECL). In this case, you'd need to
>> establish matches manually, then use ECL to transform them to a proper
>> match trace and finally use EML in order to merge them.
>>
>> I hope this helps. If on the other hand this all doesn't make sense,
>> please let me know and I'll try to scribble a short tutorial that
>> demonstrates the two different approaches using concrete examples.
>>
>> Regarding your n->1 metamodel composition scenario, couldn't you split
>> it into n-1 2->1 compositions where the result of the previous
>> composition is the input of the next one?
>>
>> Cheers,
>> Dimitris
>>
>> Ivano Malavolt wrote:
>>> Hi,
>>> I am investigating on how EML could be used for metamodels composition.
>>> My idea is that of creating a set of generic composition operators
>>> and use them in an extended EML model. I have some questions about that:
>>>
>>> 1) My composition operation can be considered a function that takes
>>> as input "n" metamodels and returns as output their composition. Is
>>> it possible to define EML models between "n" metamodels using ModeLink?
>>>
>>> 2) I am pretty expert in using AMW, but I am also very interested in
>>> discovering EML's potentialities; also, in many articles in research
>>> EML has been compared to AMW claiming that they "do the same things".
>>> Is there someone expert in EML that enlights the detailed differences
>>> between them?
>>>
>>> Thank you,
>>> Ivano
Re: [EML] using EML for generic metamodel compositon [message #21307 is a reply to message #21298] Tue, 30 June 2009 12:30 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: ivanomalavolta.gmail.com

I agree with you that in the binary composition operation the order in
which metamodels are merged is usually not significant; moreover
implementing that kind of composition is much more straightforward :)

However, since I want to provide very generic merging operators (like
also metaclass deletion, meta-class addition, attribute changing, ecc..)
I think there is some case in which the result of the composition
depends on the order in which it is performed.

Example:

Ma: componentDiagram-like metamodel
Mb: security metamodel
Mc: performance metamodel
Md: resulting composed metamodel
c: composition operation

choice 1: binary composition
Md = c(c(Ma,Mb), Mc)
Md' = c(c(Ma,Mc), Mb)

choice 2: parametric composition
Md = c(Ma, Mb, Mc)

In "choice 1" I cannot guarantee (unless I put some restriction on the
operators) that Md and Md' are the same metamodel and I do not want the
user to even think about this kind of problems.
One of the possible problems is that while performing the first merging
(the inner one) some metaclass that I need in the second merging may
have been deleted (maybe because I made some assumption while performing
the first merging).

It seems that "choice 2" has a more "confluent" behavior, and it is more
generic than "choice 1"...

These are just my ideas, what do you think about it??

Ivano


Dimitris Kolovos wrote:
> Hi Ivano,
>
> To my understanding the order in which the n-1 2->1 merges should be
> performed is not significant (i.e. changing the order should not affect
> the final result). In terms of usability, you could hide this complexity
> from the end user by doing this behind the scenes using a bit of custom
> code: the user could then just select the n metamodels they want to
> compose and you could just present them with the final result.
>
> If you could share a concrete example (input metamodels and expected
> output), I'd be happy to have a more detailed look into it.
>
> Cheers,
> Dimitris
>
> Ivano Malavolta wrote:
>> Hi Dimitris,
>> first of all thank you for the quick reply :)
>>
>> I got the difference between EML and AMW, but in my case is not such a
>> big one since I am assuming the the user always mateches the
>> metamodels manually.
>>
>> Regarding the number of input metamodels, I already thought about the
>> n-1 2 -> 1 solution but that implies that the user knows the order in
>> which metamodels should be composed. I think that that can be
>> automated, easing the task of the user; it may consist in just
>> checking the matches between the various metaclasses and then
>> automaticall establish an order for "executing" them.
>>
>> I do not know if I have been clear about that.. :)
>> For example, if I want to compose three metamodels A, B and C,
>> I'd like to compose them in "one-shot", like c(A, B, C) = D
>> and do not do something like this:
>> c(A, B, C) = c(c(A, B), C) = D
>>
>> Of course, suggestions are very welcome is there is some more elegant
>> way to solve this problem!
>>
>> Best,
>> Ivano
>>
>>
>>
>>
>> Dimitris Kolovos wrote:
>>> Hi Ivano,
>>>
>>> Modelink is a generic multi-tab editor which is convenient for
>>> establishing cross-model links. Unlike AMW, Modelink does not do
>>> anything more than that, and the models it produces are proper EMF
>>> models with proper cross-resource references. Once you have
>>> established a model using Modelink you can then use it as you please
>>> from any language in Epsilon.
>>>
>>> The way EML works is the following: You first need to identify
>>> correspondences (a match trace) between your models with ECL, and
>>> then feed the match trace into EML to merge the two models on the
>>> identified correspondences. The only reason why you'd want to use
>>> Modelink with EML would be if it were not possible to identify the
>>> matches automatically (using ECL). In this case, you'd need to
>>> establish matches manually, then use ECL to transform them to a
>>> proper match trace and finally use EML in order to merge them.
>>>
>>> I hope this helps. If on the other hand this all doesn't make sense,
>>> please let me know and I'll try to scribble a short tutorial that
>>> demonstrates the two different approaches using concrete examples.
>>>
>>> Regarding your n->1 metamodel composition scenario, couldn't you
>>> split it into n-1 2->1 compositions where the result of the previous
>>> composition is the input of the next one?
>>>
>>> Cheers,
>>> Dimitris
>>>
>>> Ivano Malavolt wrote:
>>>> Hi,
>>>> I am investigating on how EML could be used for metamodels composition.
>>>> My idea is that of creating a set of generic composition operators
>>>> and use them in an extended EML model. I have some questions about
>>>> that:
>>>>
>>>> 1) My composition operation can be considered a function that takes
>>>> as input "n" metamodels and returns as output their composition. Is
>>>> it possible to define EML models between "n" metamodels using ModeLink?
>>>>
>>>> 2) I am pretty expert in using AMW, but I am also very interested in
>>>> discovering EML's potentialities; also, in many articles in research
>>>> EML has been compared to AMW claiming that they "do the same
>>>> things". Is there someone expert in EML that enlights the detailed
>>>> differences between them?
>>>>
>>>> Thank you,
>>>> Ivano
Re: [EML] using EML for generic metamodel compositon [message #21536 is a reply to message #21307] Tue, 30 June 2009 13:02 Go to previous message
Dimitrios Kolovos is currently offline Dimitrios KolovosFriend
Messages: 1776
Registered: July 2009
Senior Member
Hi Ivano,

Usually merging doesn't delete stuff, just merges them - that's why I
assumed that the order is insignificant. EML mainly targets merging
pairs - as opposed to sets of arbitrary size - of model elements,
although these pairs may be coming from more than 2 models. In your case
it seems that in order to implement this composition operator you need
to be able to specify rules that merge more than 2 elements at the same
time so I'm not quite sure how EML could be used here...

Another approach I can think of in order to simplify and modularize your
process would be to do a regular merging of your metamodels and then
apply an in-place transformation (e.g. using EOL) which will
delete/change the stuff you want.

Cheers,
Dimitris

Ivano Malavolta wrote:
> I agree with you that in the binary composition operation the order in
> which metamodels are merged is usually not significant; moreover
> implementing that kind of composition is much more straightforward :)
>
> However, since I want to provide very generic merging operators (like
> also metaclass deletion, meta-class addition, attribute changing, ecc..)
> I think there is some case in which the result of the composition
> depends on the order in which it is performed.
>
> Example:
>
> Ma: componentDiagram-like metamodel
> Mb: security metamodel
> Mc: performance metamodel
> Md: resulting composed metamodel
> c: composition operation
>
> choice 1: binary composition
> Md = c(c(Ma,Mb), Mc)
> Md' = c(c(Ma,Mc), Mb)
>
> choice 2: parametric composition
> Md = c(Ma, Mb, Mc)
>
> In "choice 1" I cannot guarantee (unless I put some restriction on the
> operators) that Md and Md' are the same metamodel and I do not want the
> user to even think about this kind of problems.
> One of the possible problems is that while performing the first merging
> (the inner one) some metaclass that I need in the second merging may
> have been deleted (maybe because I made some assumption while performing
> the first merging).
>
> It seems that "choice 2" has a more "confluent" behavior, and it is more
> generic than "choice 1"...
>
> These are just my ideas, what do you think about it??
>
> Ivano
>
>
> Dimitris Kolovos wrote:
>> Hi Ivano,
>>
>> To my understanding the order in which the n-1 2->1 merges should be
>> performed is not significant (i.e. changing the order should not
>> affect the final result). In terms of usability, you could hide this
>> complexity from the end user by doing this behind the scenes using a
>> bit of custom code: the user could then just select the n metamodels
>> they want to compose and you could just present them with the final
>> result.
>>
>> If you could share a concrete example (input metamodels and expected
>> output), I'd be happy to have a more detailed look into it.
>>
>> Cheers,
>> Dimitris
>>
>> Ivano Malavolta wrote:
>>> Hi Dimitris,
>>> first of all thank you for the quick reply :)
>>>
>>> I got the difference between EML and AMW, but in my case is not such
>>> a big one since I am assuming the the user always mateches the
>>> metamodels manually.
>>>
>>> Regarding the number of input metamodels, I already thought about the
>>> n-1 2 -> 1 solution but that implies that the user knows the order in
>>> which metamodels should be composed. I think that that can be
>>> automated, easing the task of the user; it may consist in just
>>> checking the matches between the various metaclasses and then
>>> automaticall establish an order for "executing" them.
>>>
>>> I do not know if I have been clear about that.. :)
>>> For example, if I want to compose three metamodels A, B and C,
>>> I'd like to compose them in "one-shot", like c(A, B, C) = D
>>> and do not do something like this:
>>> c(A, B, C) = c(c(A, B), C) = D
>>>
>>> Of course, suggestions are very welcome is there is some more elegant
>>> way to solve this problem!
>>>
>>> Best,
>>> Ivano
>>>
>>>
>>>
>>>
>>> Dimitris Kolovos wrote:
>>>> Hi Ivano,
>>>>
>>>> Modelink is a generic multi-tab editor which is convenient for
>>>> establishing cross-model links. Unlike AMW, Modelink does not do
>>>> anything more than that, and the models it produces are proper EMF
>>>> models with proper cross-resource references. Once you have
>>>> established a model using Modelink you can then use it as you please
>>>> from any language in Epsilon.
>>>>
>>>> The way EML works is the following: You first need to identify
>>>> correspondences (a match trace) between your models with ECL, and
>>>> then feed the match trace into EML to merge the two models on the
>>>> identified correspondences. The only reason why you'd want to use
>>>> Modelink with EML would be if it were not possible to identify the
>>>> matches automatically (using ECL). In this case, you'd need to
>>>> establish matches manually, then use ECL to transform them to a
>>>> proper match trace and finally use EML in order to merge them.
>>>>
>>>> I hope this helps. If on the other hand this all doesn't make sense,
>>>> please let me know and I'll try to scribble a short tutorial that
>>>> demonstrates the two different approaches using concrete examples.
>>>>
>>>> Regarding your n->1 metamodel composition scenario, couldn't you
>>>> split it into n-1 2->1 compositions where the result of the previous
>>>> composition is the input of the next one?
>>>>
>>>> Cheers,
>>>> Dimitris
>>>>
>>>> Ivano Malavolt wrote:
>>>>> Hi,
>>>>> I am investigating on how EML could be used for metamodels
>>>>> composition.
>>>>> My idea is that of creating a set of generic composition operators
>>>>> and use them in an extended EML model. I have some questions about
>>>>> that:
>>>>>
>>>>> 1) My composition operation can be considered a function that takes
>>>>> as input "n" metamodels and returns as output their composition. Is
>>>>> it possible to define EML models between "n" metamodels using
>>>>> ModeLink?
>>>>>
>>>>> 2) I am pretty expert in using AMW, but I am also very interested
>>>>> in discovering EML's potentialities; also, in many articles in
>>>>> research EML has been compared to AMW claiming that they "do the
>>>>> same things". Is there someone expert in EML that enlights the
>>>>> detailed differences between them?
>>>>>
>>>>> Thank you,
>>>>> Ivano
Re: [EML] using EML for generic metamodel compositon [message #570097 is a reply to message #21222] Tue, 30 June 2009 10:12 Go to previous message
Dimitrios Kolovos is currently offline Dimitrios KolovosFriend
Messages: 1776
Registered: July 2009
Senior Member
Hi Ivano,

Modelink is a generic multi-tab editor which is convenient for
establishing cross-model links. Unlike AMW, Modelink does not do
anything more than that, and the models it produces are proper EMF
models with proper cross-resource references. Once you have established
a model using Modelink you can then use it as you please from any
language in Epsilon.

The way EML works is the following: You first need to identify
correspondences (a match trace) between your models with ECL, and then
feed the match trace into EML to merge the two models on the identified
correspondences. The only reason why you'd want to use Modelink with EML
would be if it were not possible to identify the matches automatically
(using ECL). In this case, you'd need to establish matches manually,
then use ECL to transform them to a proper match trace and finally use
EML in order to merge them.

I hope this helps. If on the other hand this all doesn't make sense,
please let me know and I'll try to scribble a short tutorial that
demonstrates the two different approaches using concrete examples.

Regarding your n->1 metamodel composition scenario, couldn't you split
it into n-1 2->1 compositions where the result of the previous
composition is the input of the next one?

Cheers,
Dimitris

Ivano Malavolt wrote:
> Hi,
> I am investigating on how EML could be used for metamodels composition.
> My idea is that of creating a set of generic composition operators and
> use them in an extended EML model. I have some questions about that:
>
> 1) My composition operation can be considered a function that takes as
> input "n" metamodels and returns as output their composition. Is it
> possible to define EML models between "n" metamodels using ModeLink?
>
> 2) I am pretty expert in using AMW, but I am also very interested in
> discovering EML's potentialities; also, in many articles in research EML
> has been compared to AMW claiming that they "do the same things". Is
> there someone expert in EML that enlights the detailed differences
> between them?
>
> Thank you,
> Ivano
Re: [EML] using EML for generic metamodel compositon [message #570197 is a reply to message #21269] Tue, 30 June 2009 10:24 Go to previous message
Eclipse UserFriend
Originally posted by: ivanomalavolta.gmail.com

Hi Dimitris,
first of all thank you for the quick reply :)

I got the difference between EML and AMW, but in my case is not such a
big one since I am assuming the the user always mateches the metamodels
manually.

Regarding the number of input metamodels, I already thought about the
n-1 2 -> 1 solution but that implies that the user knows the order in
which metamodels should be composed. I think that that can be automated,
easing the task of the user; it may consist in just checking the matches
between the various metaclasses and then automaticall establish an order
for "executing" them.

I do not know if I have been clear about that.. :)
For example, if I want to compose three metamodels A, B and C,
I'd like to compose them in "one-shot", like c(A, B, C) = D
and do not do something like this:
c(A, B, C) = c(c(A, B), C) = D

Of course, suggestions are very welcome is there is some more elegant
way to solve this problem!

Best,
Ivano




Dimitris Kolovos wrote:
> Hi Ivano,
>
> Modelink is a generic multi-tab editor which is convenient for
> establishing cross-model links. Unlike AMW, Modelink does not do
> anything more than that, and the models it produces are proper EMF
> models with proper cross-resource references. Once you have established
> a model using Modelink you can then use it as you please from any
> language in Epsilon.
>
> The way EML works is the following: You first need to identify
> correspondences (a match trace) between your models with ECL, and then
> feed the match trace into EML to merge the two models on the identified
> correspondences. The only reason why you'd want to use Modelink with EML
> would be if it were not possible to identify the matches automatically
> (using ECL). In this case, you'd need to establish matches manually,
> then use ECL to transform them to a proper match trace and finally use
> EML in order to merge them.
>
> I hope this helps. If on the other hand this all doesn't make sense,
> please let me know and I'll try to scribble a short tutorial that
> demonstrates the two different approaches using concrete examples.
>
> Regarding your n->1 metamodel composition scenario, couldn't you split
> it into n-1 2->1 compositions where the result of the previous
> composition is the input of the next one?
>
> Cheers,
> Dimitris
>
> Ivano Malavolt wrote:
>> Hi,
>> I am investigating on how EML could be used for metamodels composition.
>> My idea is that of creating a set of generic composition operators and
>> use them in an extended EML model. I have some questions about that:
>>
>> 1) My composition operation can be considered a function that takes as
>> input "n" metamodels and returns as output their composition. Is it
>> possible to define EML models between "n" metamodels using ModeLink?
>>
>> 2) I am pretty expert in using AMW, but I am also very interested in
>> discovering EML's potentialities; also, in many articles in research
>> EML has been compared to AMW claiming that they "do the same things".
>> Is there someone expert in EML that enlights the detailed differences
>> between them?
>>
>> Thank you,
>> Ivano
Re: [EML] using EML for generic metamodel compositon [message #570212 is a reply to message #21283] Tue, 30 June 2009 10:31 Go to previous message
Dimitrios Kolovos is currently offline Dimitrios KolovosFriend
Messages: 1776
Registered: July 2009
Senior Member
Hi Ivano,

To my understanding the order in which the n-1 2->1 merges should be
performed is not significant (i.e. changing the order should not affect
the final result). In terms of usability, you could hide this complexity
from the end user by doing this behind the scenes using a bit of custom
code: the user could then just select the n metamodels they want to
compose and you could just present them with the final result.

If you could share a concrete example (input metamodels and expected
output), I'd be happy to have a more detailed look into it.

Cheers,
Dimitris

Ivano Malavolta wrote:
> Hi Dimitris,
> first of all thank you for the quick reply :)
>
> I got the difference between EML and AMW, but in my case is not such a
> big one since I am assuming the the user always mateches the metamodels
> manually.
>
> Regarding the number of input metamodels, I already thought about the
> n-1 2 -> 1 solution but that implies that the user knows the order in
> which metamodels should be composed. I think that that can be automated,
> easing the task of the user; it may consist in just checking the matches
> between the various metaclasses and then automaticall establish an order
> for "executing" them.
>
> I do not know if I have been clear about that.. :)
> For example, if I want to compose three metamodels A, B and C,
> I'd like to compose them in "one-shot", like c(A, B, C) = D
> and do not do something like this:
> c(A, B, C) = c(c(A, B), C) = D
>
> Of course, suggestions are very welcome is there is some more elegant
> way to solve this problem!
>
> Best,
> Ivano
>
>
>
>
> Dimitris Kolovos wrote:
>> Hi Ivano,
>>
>> Modelink is a generic multi-tab editor which is convenient for
>> establishing cross-model links. Unlike AMW, Modelink does not do
>> anything more than that, and the models it produces are proper EMF
>> models with proper cross-resource references. Once you have
>> established a model using Modelink you can then use it as you please
>> from any language in Epsilon.
>>
>> The way EML works is the following: You first need to identify
>> correspondences (a match trace) between your models with ECL, and then
>> feed the match trace into EML to merge the two models on the
>> identified correspondences. The only reason why you'd want to use
>> Modelink with EML would be if it were not possible to identify the
>> matches automatically (using ECL). In this case, you'd need to
>> establish matches manually, then use ECL to transform them to a proper
>> match trace and finally use EML in order to merge them.
>>
>> I hope this helps. If on the other hand this all doesn't make sense,
>> please let me know and I'll try to scribble a short tutorial that
>> demonstrates the two different approaches using concrete examples.
>>
>> Regarding your n->1 metamodel composition scenario, couldn't you split
>> it into n-1 2->1 compositions where the result of the previous
>> composition is the input of the next one?
>>
>> Cheers,
>> Dimitris
>>
>> Ivano Malavolt wrote:
>>> Hi,
>>> I am investigating on how EML could be used for metamodels composition.
>>> My idea is that of creating a set of generic composition operators
>>> and use them in an extended EML model. I have some questions about that:
>>>
>>> 1) My composition operation can be considered a function that takes
>>> as input "n" metamodels and returns as output their composition. Is
>>> it possible to define EML models between "n" metamodels using ModeLink?
>>>
>>> 2) I am pretty expert in using AMW, but I am also very interested in
>>> discovering EML's potentialities; also, in many articles in research
>>> EML has been compared to AMW claiming that they "do the same things".
>>> Is there someone expert in EML that enlights the detailed differences
>>> between them?
>>>
>>> Thank you,
>>> Ivano
Re: [EML] using EML for generic metamodel compositon [message #570290 is a reply to message #21298] Tue, 30 June 2009 12:30 Go to previous message
Eclipse UserFriend
Originally posted by: ivanomalavolta.gmail.com

I agree with you that in the binary composition operation the order in
which metamodels are merged is usually not significant; moreover
implementing that kind of composition is much more straightforward :)

However, since I want to provide very generic merging operators (like
also metaclass deletion, meta-class addition, attribute changing, ecc..)
I think there is some case in which the result of the composition
depends on the order in which it is performed.

Example:

Ma: componentDiagram-like metamodel
Mb: security metamodel
Mc: performance metamodel
Md: resulting composed metamodel
c: composition operation

choice 1: binary composition
Md = c(c(Ma,Mb), Mc)
Md' = c(c(Ma,Mc), Mb)

choice 2: parametric composition
Md = c(Ma, Mb, Mc)

In "choice 1" I cannot guarantee (unless I put some restriction on the
operators) that Md and Md' are the same metamodel and I do not want the
user to even think about this kind of problems.
One of the possible problems is that while performing the first merging
(the inner one) some metaclass that I need in the second merging may
have been deleted (maybe because I made some assumption while performing
the first merging).

It seems that "choice 2" has a more "confluent" behavior, and it is more
generic than "choice 1"...

These are just my ideas, what do you think about it??

Ivano


Dimitris Kolovos wrote:
> Hi Ivano,
>
> To my understanding the order in which the n-1 2->1 merges should be
> performed is not significant (i.e. changing the order should not affect
> the final result). In terms of usability, you could hide this complexity
> from the end user by doing this behind the scenes using a bit of custom
> code: the user could then just select the n metamodels they want to
> compose and you could just present them with the final result.
>
> If you could share a concrete example (input metamodels and expected
> output), I'd be happy to have a more detailed look into it.
>
> Cheers,
> Dimitris
>
> Ivano Malavolta wrote:
>> Hi Dimitris,
>> first of all thank you for the quick reply :)
>>
>> I got the difference between EML and AMW, but in my case is not such a
>> big one since I am assuming the the user always mateches the
>> metamodels manually.
>>
>> Regarding the number of input metamodels, I already thought about the
>> n-1 2 -> 1 solution but that implies that the user knows the order in
>> which metamodels should be composed. I think that that can be
>> automated, easing the task of the user; it may consist in just
>> checking the matches between the various metaclasses and then
>> automaticall establish an order for "executing" them.
>>
>> I do not know if I have been clear about that.. :)
>> For example, if I want to compose three metamodels A, B and C,
>> I'd like to compose them in "one-shot", like c(A, B, C) = D
>> and do not do something like this:
>> c(A, B, C) = c(c(A, B), C) = D
>>
>> Of course, suggestions are very welcome is there is some more elegant
>> way to solve this problem!
>>
>> Best,
>> Ivano
>>
>>
>>
>>
>> Dimitris Kolovos wrote:
>>> Hi Ivano,
>>>
>>> Modelink is a generic multi-tab editor which is convenient for
>>> establishing cross-model links. Unlike AMW, Modelink does not do
>>> anything more than that, and the models it produces are proper EMF
>>> models with proper cross-resource references. Once you have
>>> established a model using Modelink you can then use it as you please
>>> from any language in Epsilon.
>>>
>>> The way EML works is the following: You first need to identify
>>> correspondences (a match trace) between your models with ECL, and
>>> then feed the match trace into EML to merge the two models on the
>>> identified correspondences. The only reason why you'd want to use
>>> Modelink with EML would be if it were not possible to identify the
>>> matches automatically (using ECL). In this case, you'd need to
>>> establish matches manually, then use ECL to transform them to a
>>> proper match trace and finally use EML in order to merge them.
>>>
>>> I hope this helps. If on the other hand this all doesn't make sense,
>>> please let me know and I'll try to scribble a short tutorial that
>>> demonstrates the two different approaches using concrete examples.
>>>
>>> Regarding your n->1 metamodel composition scenario, couldn't you
>>> split it into n-1 2->1 compositions where the result of the previous
>>> composition is the input of the next one?
>>>
>>> Cheers,
>>> Dimitris
>>>
>>> Ivano Malavolt wrote:
>>>> Hi,
>>>> I am investigating on how EML could be used for metamodels composition.
>>>> My idea is that of creating a set of generic composition operators
>>>> and use them in an extended EML model. I have some questions about
>>>> that:
>>>>
>>>> 1) My composition operation can be considered a function that takes
>>>> as input "n" metamodels and returns as output their composition. Is
>>>> it possible to define EML models between "n" metamodels using ModeLink?
>>>>
>>>> 2) I am pretty expert in using AMW, but I am also very interested in
>>>> discovering EML's potentialities; also, in many articles in research
>>>> EML has been compared to AMW claiming that they "do the same
>>>> things". Is there someone expert in EML that enlights the detailed
>>>> differences between them?
>>>>
>>>> Thank you,
>>>> Ivano
Re: [EML] using EML for generic metamodel compositon [message #570309 is a reply to message #21307] Tue, 30 June 2009 13:02 Go to previous message
Dimitrios Kolovos is currently offline Dimitrios KolovosFriend
Messages: 1776
Registered: July 2009
Senior Member
Hi Ivano,

Usually merging doesn't delete stuff, just merges them - that's why I
assumed that the order is insignificant. EML mainly targets merging
pairs - as opposed to sets of arbitrary size - of model elements,
although these pairs may be coming from more than 2 models. In your case
it seems that in order to implement this composition operator you need
to be able to specify rules that merge more than 2 elements at the same
time so I'm not quite sure how EML could be used here...

Another approach I can think of in order to simplify and modularize your
process would be to do a regular merging of your metamodels and then
apply an in-place transformation (e.g. using EOL) which will
delete/change the stuff you want.

Cheers,
Dimitris

Ivano Malavolta wrote:
> I agree with you that in the binary composition operation the order in
> which metamodels are merged is usually not significant; moreover
> implementing that kind of composition is much more straightforward :)
>
> However, since I want to provide very generic merging operators (like
> also metaclass deletion, meta-class addition, attribute changing, ecc..)
> I think there is some case in which the result of the composition
> depends on the order in which it is performed.
>
> Example:
>
> Ma: componentDiagram-like metamodel
> Mb: security metamodel
> Mc: performance metamodel
> Md: resulting composed metamodel
> c: composition operation
>
> choice 1: binary composition
> Md = c(c(Ma,Mb), Mc)
> Md' = c(c(Ma,Mc), Mb)
>
> choice 2: parametric composition
> Md = c(Ma, Mb, Mc)
>
> In "choice 1" I cannot guarantee (unless I put some restriction on the
> operators) that Md and Md' are the same metamodel and I do not want the
> user to even think about this kind of problems.
> One of the possible problems is that while performing the first merging
> (the inner one) some metaclass that I need in the second merging may
> have been deleted (maybe because I made some assumption while performing
> the first merging).
>
> It seems that "choice 2" has a more "confluent" behavior, and it is more
> generic than "choice 1"...
>
> These are just my ideas, what do you think about it??
>
> Ivano
>
>
> Dimitris Kolovos wrote:
>> Hi Ivano,
>>
>> To my understanding the order in which the n-1 2->1 merges should be
>> performed is not significant (i.e. changing the order should not
>> affect the final result). In terms of usability, you could hide this
>> complexity from the end user by doing this behind the scenes using a
>> bit of custom code: the user could then just select the n metamodels
>> they want to compose and you could just present them with the final
>> result.
>>
>> If you could share a concrete example (input metamodels and expected
>> output), I'd be happy to have a more detailed look into it.
>>
>> Cheers,
>> Dimitris
>>
>> Ivano Malavolta wrote:
>>> Hi Dimitris,
>>> first of all thank you for the quick reply :)
>>>
>>> I got the difference between EML and AMW, but in my case is not such
>>> a big one since I am assuming the the user always mateches the
>>> metamodels manually.
>>>
>>> Regarding the number of input metamodels, I already thought about the
>>> n-1 2 -> 1 solution but that implies that the user knows the order in
>>> which metamodels should be composed. I think that that can be
>>> automated, easing the task of the user; it may consist in just
>>> checking the matches between the various metaclasses and then
>>> automaticall establish an order for "executing" them.
>>>
>>> I do not know if I have been clear about that.. :)
>>> For example, if I want to compose three metamodels A, B and C,
>>> I'd like to compose them in "one-shot", like c(A, B, C) = D
>>> and do not do something like this:
>>> c(A, B, C) = c(c(A, B), C) = D
>>>
>>> Of course, suggestions are very welcome is there is some more elegant
>>> way to solve this problem!
>>>
>>> Best,
>>> Ivano
>>>
>>>
>>>
>>>
>>> Dimitris Kolovos wrote:
>>>> Hi Ivano,
>>>>
>>>> Modelink is a generic multi-tab editor which is convenient for
>>>> establishing cross-model links. Unlike AMW, Modelink does not do
>>>> anything more than that, and the models it produces are proper EMF
>>>> models with proper cross-resource references. Once you have
>>>> established a model using Modelink you can then use it as you please
>>>> from any language in Epsilon.
>>>>
>>>> The way EML works is the following: You first need to identify
>>>> correspondences (a match trace) between your models with ECL, and
>>>> then feed the match trace into EML to merge the two models on the
>>>> identified correspondences. The only reason why you'd want to use
>>>> Modelink with EML would be if it were not possible to identify the
>>>> matches automatically (using ECL). In this case, you'd need to
>>>> establish matches manually, then use ECL to transform them to a
>>>> proper match trace and finally use EML in order to merge them.
>>>>
>>>> I hope this helps. If on the other hand this all doesn't make sense,
>>>> please let me know and I'll try to scribble a short tutorial that
>>>> demonstrates the two different approaches using concrete examples.
>>>>
>>>> Regarding your n->1 metamodel composition scenario, couldn't you
>>>> split it into n-1 2->1 compositions where the result of the previous
>>>> composition is the input of the next one?
>>>>
>>>> Cheers,
>>>> Dimitris
>>>>
>>>> Ivano Malavolt wrote:
>>>>> Hi,
>>>>> I am investigating on how EML could be used for metamodels
>>>>> composition.
>>>>> My idea is that of creating a set of generic composition operators
>>>>> and use them in an extended EML model. I have some questions about
>>>>> that:
>>>>>
>>>>> 1) My composition operation can be considered a function that takes
>>>>> as input "n" metamodels and returns as output their composition. Is
>>>>> it possible to define EML models between "n" metamodels using
>>>>> ModeLink?
>>>>>
>>>>> 2) I am pretty expert in using AMW, but I am also very interested
>>>>> in discovering EML's potentialities; also, in many articles in
>>>>> research EML has been compared to AMW claiming that they "do the
>>>>> same things". Is there someone expert in EML that enlights the
>>>>> detailed differences between them?
>>>>>
>>>>> Thank you,
>>>>> Ivano
Previous Topic:Making EVL files known to Eclipse
Next Topic:EWL Wizards
Goto Forum:
  


Current Time: Fri Mar 29 11:58:10 GMT 2024

Powered by FUDForum. Page generated in 0.05415 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top