This is a RML IO frontend for the konverter relational algebra executor. The frontend parses valid RML IO formatted mapping files and generates execution plans that can be executed with the konverter backend.
- C++ Compiler: Install a C++ compiler (e.g., using
sudo apt install build-essential). - Konverter Backend: Download and build the konverter backend and place the required shared libraries in the
backend/directory.
-
Prepare the Backend:
- Download and build the konverter backend.
- Place the required files (e.g.,
libexecutor.so,librapartitioner.so,libthreadexecutor.so) in thebackend/directory.
-
Build the Standalone C++ Files:
- Run the
build_standalone.shscript to compile the generated C++ files.
- Run the
-
Run the Pipeline:
- Execute the complete end-to-end pipeline with:
python3 rml_frontend.py -m path/to/mapping.ttl
- Execute the complete end-to-end pipeline with:
-
Prepare the Backend:
- Download and build the konverter backend.
- Place the required files in the
backend/directory.
-
Build the C++ Files:
- Run the
build.shscript to compile the generated C++ files.
- Run the
-
Bundle with Nuitka:
- The build process will bundle everything into a standalone executable (e.g.,
rml_frontend.bin).
- The build process will bundle everything into a standalone executable (e.g.,
-
Run the Executable:
- Execute the standalone executable using:
./rml_frontend.bin -m path/to/mapping.ttl
- Execute the standalone executable using:
- Shared Libraries: Ensure that the shared libraries from the backend are correctly located.
- Build Scripts: The provided
build_standalone.shandbuild.shscripts are required for compiling and packaging the frontend.
We benchmarked the RML frontend and the konverter backend against FlexRML and Morph-KGC. The results are shown below. Missing values indicate a timeout.

Feel free to open issues or submit pull requests if you encounter any problems or have suggestions for improvements.
The code uses the serd library for RDF parsing, which is licensed under the ISC License and is downloaded during the build process.
Our code is licensed under the GNU Affero General Public License version 3.