Giter Site home page Giter Site logo

fjouault / incremental-class2relational-ceptre Goto Github PK

View Code? Open in Web Editor NEW

This project forked from atl-research/incremental-class2relational

0.0 0.0 0.0 9.06 MB

Shell 0.93% Java 75.51% Xtend 0.64% Dockerfile 0.05% C# 22.47% Makefile 0.06% R 0.34%

incremental-class2relational-ceptre's Introduction

Incremental MTL vs. GPLs: Class into Relational Database Schema Transformation Case

Model transformation languages (MTLs) are domain specific languages tailored to express model-to-model transformation programs. They typically offer hihger-level syntactic constructs, such as rules, and specific features, such as automatic traceability support, than general-purpose languages (GPLs). Moreover, some MTLS allow for multiple execution modes, such as incremental or bidirectional, based on a single specification. Many MTLs have been proposed over the past decades but GPLs are still widely used to write model transformations in practice. Previous work has identified some reasons for this, in the context of batch execution mode. Our hypothesis is that the situation is different for other execution modes.

Therefore, this transformation tool contest calls for incremental solutions implemented using various MTLs and GPLs, with the purpose of building a data set consisting of labeled solutions specified in diverse languages. The overall objective is to leverage this data set to better undertand whether GPLs are up to incremental tasks or whether MTLs are significantly more appropriate.

Contents of this repository

  • case description: submitted TTC proposal
  • labeling: examples of how to provide labels to a MTL (ATOL) and GPL (Java) solution
  • metamodels: source and target metamodel as well as the Change metamodel used for incremental updates of the input model
  • models: the source models
  • solutions: implementations of ATOL (incremental variant of ATL), and Java solutions
  • utils:
    • the SolutionDriver which executes the transformation,
    • the Comparator which evaluates the outcome of batch and incremental transformations
    • ecore2class: utility Ecore2Class transformation which can turn any Ecore model into an instance of the expected source model

Using Github maven repository

We provide two maven packages, the fuzzer / model comparator and the solution driver with metamodels, they are hosted on Github. They are published publicly but Github requires users to authenticate to access their maven repository.

For a Gradle example you can read the repository declaration from ATOL build.gradle file. To generate your credentials you can read Github documentation for maven or Gradle.

Checking the solutions

Register the Github authentication information properly, as explained in the previous section (e.g., via the GITHUB_ACTOR and GITHUB_TOKEN environment variables, or in ~/.gradle/gradle.properties). From the utils/ sub-directory, launch check_solution.sh. For instance:

	$ cd utils
	$ ./check_solution.sh

incremental-class2relational-ceptre's People

Contributors

fjouault avatar georghinkel avatar goetzst avatar mickaelclavreul avatar sandragreiner avatar theolecalvar avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.