Skip to content

An algebraic mapping engine based on mapping algebra

Notifications You must be signed in to change notification settings

RMLio/rmlweaver-js

Repository files navigation

RMLWeaver-JS

Table of content


RMLWeaver-JS is a Node.js algebraic mapping engine that works in tandem with AlgeMapLoom-rs. RMLWeaver-JS executes the mapping processes described by the mapping plan generated by AlgeMapLoom-rs. Based on RX-JS streams, RMLWeaver-JS maps the heterogeneous data to RDF knowledge graphs in streaming manner. This results in an overall lower memory usage.

Disclaimer

This implementation is used as a platform for fast iterations of implementing the underlying algebraic formalisms!

Usage

Execute a Dot File

To execute a dot file, use:

Example Execute a dot/ttl file with:

npm run execute_dot ${file}

To run in debug mode add argument -debug Like

npm run execute_dot -- ${file} -debug

Execute tests

RML test cases, for CSV input, are located under the folder ./test/rml-mapper-test-cases-csv/.

ShExML test cases are located under the folder ./test/shexml/.

To execute the tests, use:

npm test

Future works:

  • LeftJoin and RightJoin.
  • More file types for source and target.
  • (Not Sure) Fix that extend operator does not push a value if the value for the template is missing. (Test 2c)
  • Optimize code
  • Write benchmarks.

Acknowledgement

This proof of concept algebraic mapping engine is implemented by Tristan Verbeken