gts-morpher / gts_morpher

Tool for building GTS Morphisms and Amalgamations
MIT License
4 stars 0 forks source link

Export amalgamation-completing morphisms #47

Open szschaler opened 4 years ago

szschaler commented 4 years ago

weave should export the completion morphisms when exporting the GTS so that models can be transformed from the original meta-models to the amalgamated meta-model. Could, potentially, even generate the required Henshin transformation directly?

szschaler commented 3 years ago

What I would really like is some sort of API where I can pass in a model with some information about the GTS it instantiates (either implicitly through the meta-model referenced in the model or, more likely, explicitly by referencing the name of a GTS) and the GTS it should instantiate (by reference to a GTS name) and GTSMorpher figures out the resulting model for me.

Perhaps even through a new construct in the language so that one could say something like:

gts start {
  metamodel: A
  behaviour: ARules
}

map AB ...

gts final {
  weave: {
    map1: interface_of(start)
    map2: AB
  }
}

model derivedModel = "filename" (which is instance of start) as final

where the (which is instance of start) would be optional. The model construct might also support an export modifier, which would require that final was also exported and would export the resulting model as a file. Without export, the model would be available internally and through an API perhaps. This would allow the Henshin engine to run models for languages derived using GTSMorpher.