FlexRML is an experimental RML processor mostly written in C++ tied together with Python. The goal is to be fast and memory efficient.
RML (RDF Mapping Language) is central to knowledge aquisition. FlexRML is a flexible RML processor able to run on a wide range of devices:
- Cloud Environments
- Consumer Hardware
- Single Board Computers
- Microcontrollers (Separate Repository)
Currently, FlexRML supports data in CSV and JSON format.
Prebuilt binaries for Debian based systems are available in the releases section.
Prerequisites We test on Ubuntu 24.04 LTS with Pyhton 3.12 and gcc 13.3.
Install C++ compiler:
sudo apt install build-essentialCompilation Process:
- Clone or download the repository. Clone or download the repository from GitHub and navigate to the project directory.
git clone git@github.com:wintechis/flex-rml.git
cd flexrml- Setup Python3 venv.
python3 -m venv venv
source venv/bin/activate- Install Python dependencies.
pip install -r requirements.txt- Execute the build script.
./build.sh- After compilation, you can run
python3 flexrml.py.
- Install Pyhton build dependcies.
pip install -r requirements_build.txt- Execute the build script.
./build_standalone.sh- After compilation, you find the standalone
flexrml.
Note: The standalone version typically requieres more memory and is a bit slower executing mappings.
To execute a mapping use:
./flexrml -m [path]python3 flexrml.py -m [path]More informatioin about available flags can be found using the -h flag.
#TODO
For those working with Microcontrollers like ESP32, we have a dedicated version of this project. It's made specifically for compatibility with the Arduino IDE. You can access it and find detailed instructions for setup and use at the following link: FlexRML ESP32 Repository
If you use this work in your research, please cite it as:
@article{Freund_FlexRML_A_Flexible_2024,
author = {Freund, Michael and Schmid, Sebastian and Dorsch, Rene and Harth, Andreas},
journal = {Extended Semantic Web Conference},
title = {{FlexRML: A Flexible and Memory Efficient Knowledge Graph Materializer}},
year = {2024}
}This project is licensed under the GNU Affero General Public License version 3 (AGPLv3). The full text of the license can be found in the LICENSE file in this repository.
This project uses two external C++ libraries: