Skip to content

Mapping plan generator using algebraic mapping operators for heterogeneous data mapping languages in Knowledge Graph Construction.

License

Notifications You must be signed in to change notification settings

TR1VER/meamer-rs-wasm

 
 

Repository files navigation


CrustMapper: Mapping Algebra for Knowledge Graph Construction

About The Project

Mapping algebra provides operational semantics to the mapping process, opening the door to study of complexity and expressiveness of existing mapping languages. This project provides the CLI translator from RML to mapping algebra.

Prerequisites

To compile the project on your own, you'll need to have Rust toolchain installed.

For Linux-based users:

  • Rust
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

For the visualization of the generated mapping plans, you'll need python version >= 3.10 and the following packages:

  1. graphviz

Running

  1. Download this repo
  2. Run cargo build at the root this repo
    cd {repo dir}
    cargo build --release
  3. Run the CLI translator app from the compiled translator binary
    cd ./target/release/
    ./translator  file  <RML_DOCUMENT>
    For more information/options of CLI app:
    ./translator  -h
  4. Visualize the created mapping plan
    dot -Tpng {generated dot file} > output.png
  5. Simple plain text format of the mapping plan for parsing
    dot -Tplain {generated dot file} > output.txt

    (back to top)

Test cases

Currently, the translator will generate valid mapping plans for the official RML test cases with mapping plans for CSV data sources (all test cases ending in CSV).

The generated mapping plans for the test cases are inside the /resources/csv-testcases.

Acknowledgement

This software makes use of sophia_rs crate!

(back to top)

About

Mapping plan generator using algebraic mapping operators for heterogeneous data mapping languages in Knowledge Graph Construction.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 99.9%
  • Shell 0.1%