Typhon-RML is a modular Java-based tool for constructing data pipelines for Knowledge Graphs (KGs) from heterogeneous data sources starting from RML mappings but with the possibility of introducing customizations. It leverages the Chimera framework to separate concerns in the KG construction process, making it easier to customize and optimize both data access and mapping execution.
The Typhon-RML approach decomposes RML-based knowledge graph construction into compile-time and runtime phases.
At compile-time, the input RML mappings are transformed into:
- A Chimera data pipeline (
route.xml) built using Apache Camel DSL. - A set of template-based mapping rules (
template.vm) defined using MTL. These artifacts are modifiable before execution to support different data integration scenarios or optimizations.
At runtime, the generated pipeline and mappings can be executed using JBang, yielding an output equivalent to the RML's declarative intent.
How it works:
- Input: Provide an RML mapping file to
typhon-rml. - Transformation: The tool parses the RML and generates:
route.xmlusingrouter.vm(MTL)template.vmusingtranslator.vm(MTL)
- Customization (Optional):
- Modify
route.xmlto use custom data sources via different Apache Camel components. - Adjust
template.vmfor performance tuning (e.g., optimized joins).
- Modify
- Execution:
- Use
JBangto run the KG construction pipeline and produce the final output.
- Use
java -jar target/typhon-rml.jar --rml-mapping <your-rml-file.ttl>This will generate the following files:
route.xmltemplate.vm
You can use JBang or a properly initialized Camel project (including Chimera as a dependency) to execute the generated pipeline. The route.xml path should be given as argument and template.vm file should be placed in a data directory (alternatively, the location of the template file should be modified in the route.xml). The latest version of camel-chimera-mapping-template:x.y.z can be found on Maven Central.
jbang camel@apache/camel run --dep=mvn:com.cefriel:camel-chimera-mapping-template:x.y.z route.xmlCustomizations can be introduced for:
- Custom Data Access: Modify
route.xmlto use any available Camel component (e.g., read from a message queue instead of a file). - Optimized Mappings: Edit
template.vmto include transformations or optimizations not expressible in RML.
- Chimera: Declarative data integration and transformation framework.
- Mapping Template: MTL-based engine for executing declarative transformation rules.
- Apache Camel: Integration framework for building routing and mediation rules.
- Grassi M., Scrocca M., et al. (2025) typhon-rml: Modularized Declarative Knowledge Graph Construction for Flexible Integrations and Performance Optimization. In: 6th International Workshop on Knowledge Graph Construction co-located with the ESWC 2025. CEUR-WS. (to appear)
If you need commercial support for this repository, contact us at chimera-dev@cefriel.com.
Before contributing, please read carefully, complete and sign our Contributor Licence Agreement.
When contributing to this repository, please first discuss the change you wish to make via issue or any other available method with the repository's owners.
Copyright (c) Cefriel.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
