Git Product home page Git Product logo

algemaploom-rs's Introduction


AlgeMapLoom: Weaving Mapping Languages with Algebraic Operators

Archived

This repo has been archived and moved to RML.io's organization

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 and ShExML 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

RML

Currently, the translator generates 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.

ShExML

The translator can partially translate ShExML documents. The translator will make a best-effort translation if the ShExML document uses the following unsupported features. It will still generate a mapping plan which could be executed but the results won't be complete.

The following features are not supported in translation yet:

  1. Autoincrements
  2. Query statements
  3. Joins
  4. Functions
  5. Conditionals

Acknowledgement

This software makes use of sophia_rs crate!

(back to top)

algemaploom-rs's People

Contributors

ghsnd avatar s-minoo avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

tr1ver

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.