Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/emoflon/emoflon-ibex
Shared, eMoflon-specific component for incremental unidirectional and bidirectional graph transformations
https://github.com/emoflon/emoflon-ibex
bidirectional graph-transformation graph-transformation-systems incremental model-driven-development model-transformations tgg triple-graph-grammars unidirectional
Last synced: about 1 month ago
JSON representation
Shared, eMoflon-specific component for incremental unidirectional and bidirectional graph transformations
- Host: GitHub
- URL: https://github.com/emoflon/emoflon-ibex
- Owner: eMoflon
- License: gpl-3.0
- Created: 2016-10-25T14:54:14.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2024-10-29T13:29:13.000Z (about 2 months ago)
- Last Synced: 2024-10-29T16:06:13.795Z (about 2 months ago)
- Topics: bidirectional, graph-transformation, graph-transformation-systems, incremental, model-driven-development, model-transformations, tgg, triple-graph-grammars, unidirectional
- Language: Java
- Homepage:
- Size: 72.2 MB
- Stars: 12
- Watchers: 13
- Forks: 4
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# eMoflon::IBeX
eMoflon::IBeX is an Eclipse-based incremental interpreter for
bidirectional graph transformations based on Triple Graph Grammars (TGGs)
and unidirectional graph transformations.
It uses [eMoflon::IBeX UI](https://github.com/eMoflon/emoflon-ibex-ui)
for the textual rule specification.This repository contains only the part which is independent from a concrete pattern matcher.
- [eMoflon::IBeX Democles](https://github.com/eMoflon/emoflon-ibex-democles)
uses eMoflon::IBeX with the Democles pattern matching engine.
- [eMoflon::IBeX HiPE](https://github.com/eMoflon/emoflon-ibex-hipe)
uses eMoflon::IBeX with our new HiPE parallel pattern matching engine.There are 4 ways how to use eMoflon::IBeX:
1. Use our [pre-built Eclipse download](#pre-built-eclipse) with eMoflon::IBeX installed (or the version without eMoflon::IBeX to develop it).
1. Use our [pre-built virtual machine (VM)](#pre-built-virtual-machine-vm) with eMoflon::IBeX installed.
1. Prepare your Eclipse environment step-by-step with the section [how to develop](#how-to-develop).
1. [Install eMoflon::IBeX](#how-to-install) into your existing Eclipse installation.## Pre-built Eclipse
1. Install [GraphViz](http://www.graphviz.org/download/).
1. Choose the right pre-built Eclipse version for your need. A comparisson table can be found in the [readme of the emoflon-ibex-eclipse-build repository](https://github.com/eMoflon/emoflon-ibex-eclipse-build). Typically, you want to download:
+ `eclipse-emoflon-$yourOS-dev.zip` if you want to develop eMoflon::IBeX
+ `eclipse-emoflon-$yourOS-user.zip` if you want to use eMoflon::IBeX without developing it
1. Download your chosen [Eclipse archive](https://github.com/eMoflon/emoflon-ibex-eclipse-build/releases/latest).
1. Extract the archive to a folder, e.g., to `~/eclipse-apps/emoflon-ibex`.
1. Start your Eclipse (= the binary in the extracted folder) and create a new workspace.### eclipse-emoflon-user
You can now create eMoflon projects and/or start using it with existing projects, e.g., from the [tutorial](https://github.com/eMoflon/emoflon-ibex-tutorial).
### eclipse-emoflon-dev
Some additional steps are needed:
Complete steps 9, 10, 12-15 from [the next section](#how-to-develop) to clone the code and verify your build.## Pre-built virtual machine (VM)
You can download the latest version of our pre-built virtual machine image from the [release section](https://github.com/eMoflon/emoflon-ibex-vm/releases).
For detailed installation instructions, please refer to the [README.md file](https://github.com/eMoflon/emoflon-ibex-vm#usageinstallation) within the repository.## How to develop
1. Install a Java JDK >= 21.
1. Install [GraphViz](http://www.graphviz.org/download/).
1. Get the latest version of the [Eclipse Modeling Tools](https://www.eclipse.org/downloads/packages/). You need at least **Eclipse 2024-06**.
1. Install Xtext from this update site (or use the Eclipse Marketplace):
http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases/
1. Install PlantUML from this update site (or use the Eclipse Marketplace):
http://hallvard.github.io/plantuml/
1. Install HiPE from this update site:
https://hipe-devops.github.io/HiPE-Updatesite/hipe.updatesite/
1. Install the EPackage Registration Feature from http://www.kermeta.org/k2/update
1. Check the encoding for Xtend files.
- In Eclipse: Go to ```Window->Preferences->General->Workspace```.
- Change the text file encoding to 'Other: UTF-8'.
1. (Important!) Set standard git folder to (workspace) relative path, e.g., (Eclipse ->) Window -> Preferences -> Team (or Version Control) -> Git -> Default Repository Folder = `${workspace_loc}\git` (for Windows) or `${workspace_loc}/git` (for Linux and macOS)
1. Go to ```File/Import.../Team/Team Project Set```, check URL and enter in and import this PSF file:
- https://raw.githubusercontent.com/eMoflon/emoflon-ibex-deployment/master/devProjectSet.psf
1. Execute MWE2
- Open package ```org.emoflon.ibex.common/launch```.
- Right-click on ```Run all eMoflon MWE2 files.mwe2```.
- Press ```Run As -> Run all eMoflon MWE2 files```.
1. Set UTF-8 as file encoding for the development workspace (*Window → Preferences → General/Workspace*) and manually build all projects by clicking (*Project → Clean... → Clean all projects*) to trigger code generation (and get rid of errors). Make sure to check *Project → Build Automatically*.
1. Set up your runtime and test workspaces by starting a runtime Eclipse workspace from your development workspace:
- To start the runtime workspace, do the following steps *inside* your development workspace: *Run → Run Configurations...;* double click on *Eclipse Application*, give it a name (e.g., *test-workspace*) and click on *Run*.
- Your development Eclipse should now start another Eclipse instance with all eMoflon plug-ins installed.
- Inside your runtime workspace:
- Check and/or apply the git setting of **step 8** again.
- Import this PSF file:
https://raw.githubusercontent.com/eMoflon/emoflon-ibex-tests/master/testProjectSet.psf
1. Execute MWE2
- Open package ```/org.emoflon.express/src/org.emoflon.express```
- Right-click on ```GenerateExpress.mwe2```
- Press ```Run As -> MWE2 Workflow```
1. Inside the runtime workspace, build all projects (*Project → Clean... → Clean all projects*) to trigger code generation.
- Hint: It may be required to trigger a full eMoflon build on all projects. Select all projects in *Package Explorer* and click on the black hammer symbol.
1. Run the JUnit tests to ensure that all is well by right-clicking
one of the ```Testsuite_*.launch``` in the ```Testsuite``` project
and ```TestsuiteGT.launch``` in the ```TestsuiteGT``` project
and start the tests by selecting ```Run As/JUnit```.
If everything is set up correctly, all tests should be green.Running ```Testsuite_GLPK.launch``` requires GLPK (see installation step 5).
Running ```Testsuite_Gurobi.launch``` requires Gurobi (see installation step 6).Running ```Testsuite_CBC.launch``` requires Google OR tools (see installation step 7).
```Testsuite_SAT4J.launch``` uses the SAT4J (automatically installed, but the slowest option).
## How to install
eMoflon::IBeX can be installed via its updatesite: https://github.com/eMoflon/emoflon-ibex-updatesite
Please notice: You need at least Eclipse 2024-06.
Please notice: Ensure that your Eclipse runs with an OpenJDK >= 21.
(Please notice:
This section is for *installation purpose* only.
If you already setup your development workspace as described above, this section is irrelevant for you.
Furthermore, you may need to install some additional dependencies if Eclipse tells you to.)