Please note that unfortunately - like the provided ATL solution - the solutions cannot be started directly using MS Windows, since they use cd ../dir && ./gradlew
. If only Windows is available, these commands have to be adapted.
The solution can be found at solutions/RelationalRAGSolution. All variants described in the paper are started from separate subfolders with a solution-specific suffix.
If there are problems, please submit an issue or write to [email protected]
The solution can be found at solutions/RSYNC. All variants described in the paper are started from separate subfolders with a solution-specific suffix.
If there are problems, please submit an issue or write to [email protected]
- 64-bit operating system
- Python 3.3 or higher
- R
The relational RAG solutions use Gradle as build tool. Thus there are no extra prerequisites.
However, in order to run the RSYNC solutions, the following tools are necessary:
- Scala (optional, will be downloaded automatically via SBT if not present)
- SBT 1.x
The scripts
directory contains the run.py
script.
At a first glance, invoke it without any arguments so that the solution will be built, benchmarked, running times visualized and the results compared to the reference solution's.
One might fine tune the script for the following purposes:
run.py -b
-- builds the projectsrun.py -b -s
-- builds the projects without testingrun.py -g
-- generates the instance modelsrun.py -m
-- run the benchmark without buildingrun.py -v
-- visualizes the results of the latest benchmarkrun.py -e
-- compare results to the reference output. The benchmark shall already been executed using-m
.run.py -m -e
-- run benchmark without building, then extract and compare results to the reference outputrun.py -t
-- build the project and run tests (usually unit tests as defined for the given solution)
The config
directory contains the configuration for the scripts:
config.json
-- configuration for the model generation and the benchmark- Note: the timeout as set in the benchmark configuration (default: 6000 seconds) applies to the gross cumulative runtime of the tool for a given changeset and update sequences. This also includes e.g. Initialization time which is not required by the benchmark framework to be measured.
Timeout is only applied to the solutions' run phase (see
-m
forrun.py
), so it is not applied to e.g. the build phase (see-b
forrun.py
).
- Note: the timeout as set in the benchmark configuration (default: 6000 seconds) applies to the gross cumulative runtime of the tool for a given changeset and update sequences. This also includes e.g. Initialization time which is not required by the benchmark framework to be measured.
Timeout is only applied to the solutions' run phase (see
The script runs the benchmark for the given number of runs, for the specified tools and input models.
The benchmark results are stored in a CSV file. The header for the CSV file is stored in the output/header.csv
file.
To implement a tool, you need to create a new directory in the solutions directory and give it a suitable name.