{"id":43510313,"url":"https://github.com/cefriel/typhon-rml","last_synced_at":"2026-02-03T12:50:25.594Z","repository":{"id":286985294,"uuid":"941912057","full_name":"cefriel/typhon-rml","owner":"cefriel","description":"Modularized Declarative KG Construction with RML and Chimera","archived":false,"fork":false,"pushed_at":"2025-06-09T15:51:39.000Z","size":243,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-09T23:47:54.036Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cefriel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-03T09:06:36.000Z","updated_at":"2025-06-09T15:51:43.000Z","dependencies_parsed_at":"2025-09-09T22:25:25.573Z","dependency_job_id":"a41f23a6-4518-4579-b68c-d58114e871c7","html_url":"https://github.com/cefriel/typhon-rml","commit_stats":null,"previous_names":["cefriel/typhon-rml"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/cefriel/typhon-rml","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cefriel%2Ftyphon-rml","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cefriel%2Ftyphon-rml/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cefriel%2Ftyphon-rml/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cefriel%2Ftyphon-rml/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cefriel","download_url":"https://codeload.github.com/cefriel/typhon-rml/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cefriel%2Ftyphon-rml/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29046488,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-03T10:09:22.136Z","status":"ssl_error","status_checked_at":"2026-02-03T10:09:16.814Z","response_time":96,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-02-03T12:50:24.884Z","updated_at":"2026-02-03T12:50:25.584Z","avatar_url":"https://github.com/cefriel.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Typhon-RML\n\n**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](https://github.com/cefriel/chimera) framework to separate concerns in the KG construction process, making it easier to customize and optimize both data access and mapping execution.\n\n### Key Concepts\n\nThe **Typhon-RML** approach decomposes RML-based knowledge graph construction into **compile-time** and **runtime** phases.\n\n\u003cp align=\"left\"\u003e\u003cimg src=\"typhon-rml.png\" alt=\"Diagram\" width=\"800\"\u003e\u003c/p\u003e\n\nAt **compile-time**, the input RML mappings are transformed into:\n  - A Chimera data pipeline (`route.xml`) built using Apache Camel DSL.\n  - A set of template-based mapping rules (`template.vm`) defined using [MTL](https://github.com/cefriel/mapping-template).\nThese artifacts are modifiable before execution to support different data integration scenarios or optimizations.\n\nAt **runtime**, the generated pipeline and mappings are executed using the `typhon-chimera-skeleton` component, yielding an output equivalent to the RML's declarative intent.\n\nHow it works:\n\n1. **Input**: Provide an RML mapping file to `typhon-rml`.\n2. **Transformation**: The tool parses the RML and generates:\n   - `route.xml` using `router.vm` (MTL)\n   - `template.vm` using `translator.vm` (MTL)\n3. **Customization (Optional)**:\n   - Modify `route.xml` to use custom data sources via different Apache Camel components.\n   - Adjust `template.vm` for performance tuning (e.g., optimized joins).\n4. **Execution**:\n   - Use `typhon-chimera-skeleton` to run the KG construction pipeline and produce the final output.\n\n### Use Typhon-RML\n\n```bash\njava -jar target/typhon-rml.jar --rml-mapping \u003cyour-rml-file.ttl\u003e\n```\n\nThis will generate the following files:\n- `route.xml`\n- `template.vm`\n\nUse the [typhon-chimera-skeleton](https://github.com/cefriel/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:\n\n```bash\njava -jar target/chimera-typhon-skeleton.jar\n```\n\nCustomizations can be introduced for:\n- **Custom Data Access**: Modify `route.xml` to use any available [Camel component](https://camel.apache.org/components/latest/index.html) (e.g., read from a message queue instead of a file).\n- **Optimized Mappings**: Edit `template.vm` to include transformations or optimizations not expressible in RML.\n\n### Related Projects\n\n- [Chimera](https://github.com/cefriel/chimera): Declarative data integration and transformation framework.\n- [Mapping Template](https://github.com/cefriel/mapping-template): MTL-based engine for executing declarative transformation rules.\n- [Apache Camel](https://camel.apache.org/): Integration framework for building routing and mediation rules.\n\n### Publications\n\n- 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)\n\n### Commercial Support\n\nIf you need commercial support for this repository, contact us at [chimera-dev@cefriel.com](mailto:chimera-dev@cefriel.com).\n\n### License\n\n_Copyright (c) 2025 Cefriel._\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcefriel%2Ftyphon-rml","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcefriel%2Ftyphon-rml","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcefriel%2Ftyphon-rml/lists"}