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 are executed using the typhon-chimera-skeleton
component, 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.xml
usingrouter.vm
(MTL)template.vm
usingtranslator.vm
(MTL)
- Customization (Optional):
- Modify
route.xml
to use custom data sources via different Apache Camel components. - Adjust
template.vm
for performance tuning (e.g., optimized joins).
- Modify
- Execution:
- Use
typhon-chimera-skeleton
to 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.xml
template.vm
Use the typhon-chimera-skeleton to execute the generated pipeline. The typhon-chimera-skeleton expects the route.xml
and template.vm
files to be placed in a data
directory where the following command will be run:
java -jar target/chimera-typhon-skeleton.jar
Customizations can be introduced for:
- Custom Data Access: Modify
route.xml
to use any available Camel component (e.g., read from a message queue instead of a file). - Optimized Mappings: Edit
template.vm
to 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 [email protected].
Copyright (c) 2025 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.