Skip to content

pappist/trainbenchmark

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Train Benchmark

Build Status

Note. The Train Benchmark has a fork for the 2015 Transformation Tool Contest, primarily targeting EMF tools. This repository contains the original Train Benchmark which also supports RDF, SQL and property graph databases.

For theoretical and implementation details, check out the following documents:

Prerequisites

Besides these requirements, it is also necessary to clone and build the MONDO-SAM project. The easiest way is to run the following script from the trainbenchmark/scripts directory:

  • ./resolve-dependencies.sh

Projects

Generator projects

The generator projects are responsible for generating instance models. Currently, the following formats are supported:

  • EMF
  • Property graph
  • RDF
  • SQL

Benchmark projects

The benchmark projects are responsible for running the benchmarks.

  • EMF
    • Drools 5 & 6
    • EMF API
    • EMF-IncQuery
    • Eclipse OCL
  • Property graph
    • Neo4j
    • OrientDB
  • RDF
    • Allegro
    • Blazegraph
    • Jena
    • Sesame
    • Virtuoso
  • SQL
    • MySQL

Getting started

To get familiar with the Train Benchmark, we recommend to try an existing implementation, e.g. the Sesame implementation.

Platform dependencies

Linux

Make sure you have Maven 3 on the path.

$ mvn --version

Windows

Please note that the Windows version of the benchmark is not complete (e.g. 4store is not available on Windows) and is not maintained actively.

  • Cygwin is required to run the shell scripts.
  • Make sure the JAVA_HOME environment variable is set to the folder of the JDK.
  • Due to legacy limitations, Eclipse applications do no support paths longer than 260 characters. This causes the following error: The Eclipse executable launcher was unable to locate its companion shared library. To work around this, on Windows the build script moves the generated Eclpise application products higher in the directory structure and the benchmark script calls the applications accordingly.

Importing to Eclipse

The projects are developed and tested with Eclipse Kepler. In Eclipse Luna you may experience problems if you wish to edit the EMF metamodel.

To import and develop the Train Benchmark, you need the m2e Eclipse plugin, included in Eclipse for Java developers. If you use another distribution (e.g. Eclipse Modeling), you can install it from the Kepler update site or the m2e update site (http://download.eclipse.org/technology/m2e/releases).

Naming conventions

To avoid confusion between the different implementations, we decided to use the Smurf Naming convention (see #21). For example, the classes in the Java implementation are named JavaBenchmarkCase, JavaPosLength, JavaPosLengthMatch, JavaPosLengthTransformation, while the classes in the EMF-IncQuery implementation are named EMFIncQueryBenchmarkCase, EMFIncQueryPosLength, etc. We found that relying on the package names to differentiate class names is error-prone and should be avoided.

About

Train Benchmark framework

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 96.1%
  • Python 2.4%
  • Shell 1.5%