Skip to content

Commit

Permalink
Merge pull request #56 from oeg-upm/dev
Browse files Browse the repository at this point in the history
changing name of the engine
  • Loading branch information
dachafra authored Feb 15, 2023
2 parents de1e740 + f1fc670 commit 689a24c
Show file tree
Hide file tree
Showing 72 changed files with 139 additions and 139 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ jobs:
python-version: '3.9'
- name: Install requirements
run: pip install -r requirements.txt pytest-cov coverage DeepDiff
- name: Build yarrrml-translator
- name: Build yatter
run: |
cd yarrrml-translator
cd src
pip install .
- name: Run tests and collect coverage
run: coverage run --source yarrrml_translator -m pytest
run: coverage run --source yatter -m pytest
- name: Upload coverage reports to Codecov with GitHub Action
uses: codecov/codecov-action@v3
2 changes: 1 addition & 1 deletion .github/workflows/python-publish-rel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,6 @@ jobs:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: |
cd yarrrml-translator
cd src
python setup.py -k rel sdist bdist_wheel
twine upload dist/*
4 changes: 2 additions & 2 deletions .github/workflows/testgha.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ jobs:
python -m pip install --upgrade pip
pip install setuptools wheel twine pytest DeepDiff
pip install -r requirements.txt
- name: Build yarrrml-translator
- name: Build yatter
run: |
cd yarrrml-translator
cd src
pip install .
- name: Test with pytest
run: |
Expand Down
38 changes: 19 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,80 +1,80 @@
# yarrrml-translator
# YATTER

![GitHub](https://img.shields.io/github/license/oeg-upm/yarrrml-translator?style=flat)
![GitHub](https://img.shields.io/github/license/oeg-upm/yatter?style=flat)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.7024501.svg)](https://doi.org/10.5281/zenodo.7024501)
[![PyPI](https://img.shields.io/pypi/v/yarrrml-translator?style=flat)](https://pypi.org/project/yarrrml-translator)
![GitHub Release Date](https://img.shields.io/github/release-date/oeg-upm/yarrrml-translator)
[![codecov](https://codecov.io/gh/oeg-upm/yarrrml-translator/branch/dev/graph/badge.svg?token=QUWCG214SG)](https://codecov.io/gh/oeg-upm/yarrrml-translator)
[![PyPI](https://img.shields.io/pypi/v/yatter?style=flat)](https://pypi.org/project/yatter)
![GitHub Release Date](https://img.shields.io/github/release-date/oeg-upm/yatter)
[![codecov](https://codecov.io/gh/oeg-upm/yatter/branch/dev/graph/badge.svg?token=QUWCG214SG)](https://codecov.io/gh/oeg-upm/yatter)

The tool translates mapping rules from YARRRML in a turtle-based serialization of RML or R2RML.

## Installation:
```
pip install yarrrml-translator
pip install yatter
```

## Execution from CLI
To execute from command line run the following:

- From YARRRML to \[R2\]RML
```bash
python3 -m yarrrml_translator -i path_to_input_yarrrml.yml -o path_to_rdf_mapping.ttl [-f R2RML]
python3 -m yatter -i path_to_input_yarrrml.yml -o path_to_rdf_mapping.ttl [-f R2RML]
```
`-f R2RML` is an optional parameter for translating input YARRRML into R2RML

- From \[R2\]RML to YARRRML
```bash
python3 -m yarrrml_translator -i path_to_input_rdf_mapping.ttl -o path_to_output_yarrrml.yml [-f R2RML]
python3 -m yatter -i path_to_input_rdf_mapping.ttl -o path_to_output_yarrrml.yml [-f R2RML]
```
`-f R2RML` is an optional parameter for translating input R2RML into YARRRML

- Merging mappings based on TriplesMap id (keys of each TriplesMap should be disjoint):
```bash
python3 -m yarrrml_translator -m yarrrml_mapping1.yaml yarrrml_mapping2.yaml [..] -o path_to_output_yarrrml.yml
python3 -m yatter -m yarrrml_mapping1.yaml yarrrml_mapping2.yaml [..] -o path_to_output_yarrrml.yml
```

## Execution as a library

If you want to include the module in your implementation:
- for translating **YARRRML mapping** to **RML mappings** (and inverse):
```python
import yarrrml_translator
import yatter
from ruamel.yaml import YAML
# YARRRML to RML
yaml = YAML(typ='safe', pure=True)
rml_content = yarrrml_translator.translate(yaml.load(open("path-to-yarrrml")))
rml_content = yatter.translate(yaml.load(open("path-to-yarrrml")))
# RML to YARRRML
yarrrml_content = yarrrml_translator.inverse_translate("rdf_mapping_content")
yarrrml_content = yatter.inverse_translate("rdf_mapping_content")
```
- for translating **YARRRML mappings** to **R2RML mappings** (and inverse):
```python
import yarrrml_translator
import yatter
from ruamel.yaml import YAML

R2RML_URI = 'http://www.w3.org/ns/r2rml#'
# YARRRML to R2RML
yaml = YAML(typ='safe', pure=True)
rml_content = yarrrml_translator.translate(yaml.load(open("path-to-yarrrml")), mapping_format=R2RML_URI)
rml_content = yatter.translate(yaml.load(open("path-to-yarrrml")), mapping_format=R2RML_URI)
# R2RML to YARRRML
yarrrml_content = yarrrml_translator.inverse_translate("rdf_mapping_content", mapping_format=R2RML_URI)
yarrrml_content = yatter.inverse_translate("rdf_mapping_content", mapping_format=R2RML_URI)
```
- for merging TriplesMap based on id:
```python
import yarrrml_translator
import yatter
list_yarrrml_mappings = ["content_mapping_yarrrml1", "content_mapping_yarrrml1"]
yarrrml_content = yarrrml_translator.merge_mappings(list_yarrrml_mappings)
yarrrml_content = yatter.merge_mappings(list_yarrrml_mappings)
```


## Specifications conformant:

These are the following specifications used by the translation process:
- YARRRML: https://kg-construct.github.io/yarrrml-spec/
- YARRRML: https://w3id.org/kg-construct/yarrrml
- R2RML: https://www.w3.org/TR/r2rml/
- RML: https://rml.io/spec
- RML-star: https://w3id.org/kg-construct/rml-star
- RML-Target: https://rml.io/specs/rml-target/
- RML-FNML: https://kg-construct.github.io/fnml-spec/
- RML-FNML: https://w3id.org/kg-construct/rml-fnml

## Authors
Ontology Engineering Group:
Expand Down
2 changes: 1 addition & 1 deletion yarrrml-translator/setup.py → src/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
requirements = list(filter(None, r.read().split("\n")[0:]))

setuptools.setup(
name="yarrrml_translator",
name="yatter",
version=vers_taged,
author="David Chaves-Fraga",
author_email="david.chaves@upm.es",
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ def parse_inputs():
input_data.append(yaml.load(f))
else:
sys.tracebacklimit = 0
logger.error("No correct arguments, run python3 -m yarrrml_translator -h to see the help)")
logger.error("No correct arguments, run python3 -m yatter -h to see the help)")
raise Exception("")

return input_format, input_data
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
4 changes: 2 additions & 2 deletions test/projects/PPDSTC/test_ppds.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

import os
from ruamel.yaml import YAML
import yarrrml_translator
import yatter
from rdflib.graph import Graph
from rdflib import compare
RML_URI = 'http://semweb.mmlab.be/ns/rml#'
Expand All @@ -22,6 +22,6 @@ def test_yarrrml_ppds():
translated_mapping = Graph()
yaml = YAML(typ='safe', pure=True)
mapping_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'mapping.yml')
translated_mapping.parse(data=yarrrml_translator.translate(yaml.load(open(mapping_path)), mapping_format=RML_URI), format="ttl")
translated_mapping.parse(data=yatter.translate(yaml.load(open(mapping_path)), mapping_format=RML_URI), format="ttl")

assert compare.isomorphic(expected_mapping, translated_mapping)
4 changes: 2 additions & 2 deletions test/r2rml/INVERSETC-0001/test_inversetc0001.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

import os
from ruamel.yaml import YAML
import yarrrml_translator
import yatter
from rdflib.graph import Graph
from deepdiff import DeepDiff
R2RML_URI = 'http://www.w3.org/ns/r2rml#'
Expand All @@ -22,7 +22,7 @@ def test_inversetc0001():

input_mapping = Graph()
mapping_path = input_mapping.parse(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'mapping.ttl'), format="ttl")
translated_mapping = yaml.load(str(yarrrml_translator.inverse_translation(mapping_path, mapping_format=R2RML_URI)))
translated_mapping = yaml.load(str(yatter.inverse_translation(mapping_path, mapping_format=R2RML_URI)))

ddiff = DeepDiff(expected_mapping['mappings'], translated_mapping['mappings'], ignore_order=True)

Expand Down
4 changes: 2 additions & 2 deletions test/r2rml/INVERSETC-0002/test_inversetc0002.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

import os
from ruamel.yaml import YAML
import yarrrml_translator
import yatter
from rdflib.graph import Graph
from deepdiff import DeepDiff
R2RML_URI = 'http://www.w3.org/ns/r2rml#'
Expand All @@ -22,7 +22,7 @@ def test_inversetc0002():

input_mapping = Graph()
mapping_path = input_mapping.parse(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'mapping.ttl'), format="ttl")
translated_mapping = yaml.load(str(yarrrml_translator.inverse_translation(mapping_path, mapping_format=R2RML_URI)))
translated_mapping = yaml.load(str(yatter.inverse_translation(mapping_path, mapping_format=R2RML_URI)))

ddiff = DeepDiff(expected_mapping['mappings'], translated_mapping['mappings'], ignore_order=True)

Expand Down
4 changes: 2 additions & 2 deletions test/r2rml/INVERSETC-0003/test_inversetc0003.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

import os
from ruamel.yaml import YAML
import yarrrml_translator
import yatter
from rdflib.graph import Graph
from deepdiff import DeepDiff
R2RML_URI = 'http://www.w3.org/ns/r2rml#'
Expand All @@ -22,7 +22,7 @@ def test_inversetc0003():

input_mapping = Graph()
mapping_path = input_mapping.parse(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'mapping.ttl'), format="ttl")
translated_mapping = yaml.load(str(yarrrml_translator.inverse_translation(mapping_path, mapping_format=R2RML_URI)))
translated_mapping = yaml.load(str(yatter.inverse_translation(mapping_path, mapping_format=R2RML_URI)))

ddiff = DeepDiff(expected_mapping['mappings'], translated_mapping['mappings'], ignore_order=True)

Expand Down
4 changes: 2 additions & 2 deletions test/r2rml/INVERSETC-0004/test_inversetc0004.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

import os
from ruamel.yaml import YAML
import yarrrml_translator
import yatter
from rdflib.graph import Graph
from deepdiff import DeepDiff
R2RML_URI = 'http://www.w3.org/ns/r2rml#'
Expand All @@ -22,7 +22,7 @@ def test_inversetc0004():

input_mapping = Graph()
mapping_path = input_mapping.parse(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'mapping.ttl'), format="ttl")
translated_mapping = yaml.load(str(yarrrml_translator.inverse_translation(mapping_path, mapping_format=R2RML_URI)))
translated_mapping = yaml.load(str(yatter.inverse_translation(mapping_path, mapping_format=R2RML_URI)))

ddiff = DeepDiff(expected_mapping['mappings'], translated_mapping['mappings'], ignore_order=True)

Expand Down
4 changes: 2 additions & 2 deletions test/r2rml/YARRRMLTC-0001/test_yarrrmltc0001.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

import os
from ruamel.yaml import YAML
import yarrrml_translator
import yatter
from rdflib.graph import Graph
from rdflib import compare
R2RML_URI = 'http://www.w3.org/ns/r2rml#'
Expand All @@ -21,6 +21,6 @@ def test_yarrrmltc0001():
translated_mapping = Graph()
yaml = YAML(typ='safe', pure=True)
mapping_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'mapping.yml')
translated_mapping.parse(data=yarrrml_translator.translate(yaml.load(open(mapping_path)), mapping_format=R2RML_URI), format="ttl")
translated_mapping.parse(data=yatter.translate(yaml.load(open(mapping_path)), mapping_format=R2RML_URI), format="ttl")

assert compare.isomorphic(expected_mapping, translated_mapping)
4 changes: 2 additions & 2 deletions test/r2rml/YARRRMLTC-0002/test_yarrrmltc0002.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

import os
from ruamel.yaml import YAML
import yarrrml_translator
import yatter
from rdflib.graph import Graph
from rdflib import compare
R2RML_URI = 'http://www.w3.org/ns/r2rml#'
Expand All @@ -21,6 +21,6 @@ def test_yarrrmltc0002():
translated_mapping = Graph()
yaml = YAML(typ='safe', pure=True)
mapping_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'mapping.yml')
translated_mapping.parse(data=yarrrml_translator.translate(yaml.load(open(mapping_path)), mapping_format=R2RML_URI), format="ttl")
translated_mapping.parse(data=yatter.translate(yaml.load(open(mapping_path)), mapping_format=R2RML_URI), format="ttl")

assert compare.isomorphic(expected_mapping, translated_mapping)
4 changes: 2 additions & 2 deletions test/r2rml/YARRRMLTC-0003/test_yarrrmltc0003.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

import os
from ruamel.yaml import YAML
import yarrrml_translator
import yatter
from rdflib.graph import Graph
from rdflib import compare
R2RML_URI = 'http://www.w3.org/ns/r2rml#'
Expand All @@ -21,6 +21,6 @@ def test_yarrrmltc0003():
translated_mapping = Graph()
yaml = YAML(typ='safe', pure=True)
mapping_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'mapping.yml')
translated_mapping.parse(data=yarrrml_translator.translate(yaml.load(open(mapping_path)), mapping_format=R2RML_URI), format="ttl")
translated_mapping.parse(data=yatter.translate(yaml.load(open(mapping_path)), mapping_format=R2RML_URI), format="ttl")

assert compare.isomorphic(expected_mapping, translated_mapping)
4 changes: 2 additions & 2 deletions test/r2rml/YARRRMLTC-0004/test_yarrrmltc0004.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

import os
from ruamel.yaml import YAML
import yarrrml_translator
import yatter
from rdflib.graph import Graph
from rdflib import compare
R2RML_URI = 'http://www.w3.org/ns/r2rml#'
Expand All @@ -21,6 +21,6 @@ def test_yarrrmltc0004():
translated_mapping = Graph()
yaml = YAML(typ='safe', pure=True)
mapping_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'mapping.yml')
translated_mapping.parse(data=yarrrml_translator.translate(yaml.load(open(mapping_path)), mapping_format=R2RML_URI), format="ttl")
translated_mapping.parse(data=yatter.translate(yaml.load(open(mapping_path)), mapping_format=R2RML_URI), format="ttl")

assert compare.isomorphic(expected_mapping, translated_mapping)
4 changes: 2 additions & 2 deletions test/r2rml/YARRRMLTC-0005/test_yarrrmltc0005.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

import os
from ruamel.yaml import YAML
import yarrrml_translator
import yatter
from rdflib.graph import Graph
from rdflib import compare
R2RML_URI = 'http://www.w3.org/ns/r2rml#'
Expand All @@ -21,6 +21,6 @@ def test_yarrrmltc0005():
translated_mapping = Graph()
yaml = YAML(typ='safe', pure=True)
mapping_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'mapping.yml')
translated_mapping.parse(data=yarrrml_translator.translate(yaml.load(open(mapping_path)), mapping_format=R2RML_URI), format="ttl")
translated_mapping.parse(data=yatter.translate(yaml.load(open(mapping_path)), mapping_format=R2RML_URI), format="ttl")

assert compare.isomorphic(expected_mapping, translated_mapping)
4 changes: 2 additions & 2 deletions test/r2rml/YARRRMLTC-0006/test_yarrrmltc0006.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

import os
from ruamel.yaml import YAML
import yarrrml_translator
import yatter
from rdflib.graph import Graph
from rdflib import compare
R2RML_URI = 'http://www.w3.org/ns/r2rml#'
Expand All @@ -21,6 +21,6 @@ def test_yarrrmltc0006():
translated_mapping = Graph()
yaml = YAML(typ='safe', pure=True)
mapping_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'mapping.yml')
translated_mapping.parse(data=yarrrml_translator.translate(yaml.load(open(mapping_path)), mapping_format=R2RML_URI), format="ttl")
translated_mapping.parse(data=yatter.translate(yaml.load(open(mapping_path)), mapping_format=R2RML_URI), format="ttl")

assert compare.isomorphic(expected_mapping, translated_mapping)
4 changes: 2 additions & 2 deletions test/r2rml/YARRRMLTC-0007/test_yarrrmltc0007.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

import os
from ruamel.yaml import YAML
import yarrrml_translator
import yatter
from rdflib.graph import Graph
from rdflib import compare
R2RML_URI = 'http://www.w3.org/ns/r2rml#'
Expand All @@ -21,6 +21,6 @@ def test_yarrrmltc0007():
translated_mapping = Graph()
yaml = YAML(typ='safe', pure=True)
mapping_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'mapping.yml')
translated_mapping.parse(data=yarrrml_translator.translate(yaml.load(open(mapping_path)), mapping_format=R2RML_URI), format="ttl")
translated_mapping.parse(data=yatter.translate(yaml.load(open(mapping_path)), mapping_format=R2RML_URI), format="ttl")

assert compare.isomorphic(expected_mapping, translated_mapping)
4 changes: 2 additions & 2 deletions test/r2rml/YARRRMLTC-0008/test_yarrrmltc0008.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

import os
from ruamel.yaml import YAML
import yarrrml_translator
import yatter
from rdflib.graph import Graph
from rdflib import compare
R2RML_URI = 'http://www.w3.org/ns/r2rml#'
Expand All @@ -21,6 +21,6 @@ def test_yarrrmltc0008():
translated_mapping = Graph()
yaml = YAML(typ='safe', pure=True)
mapping_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'mapping.yml')
translated_mapping.parse(data=yarrrml_translator.translate(yaml.load(open(mapping_path)), mapping_format=R2RML_URI), format="ttl")
translated_mapping.parse(data=yatter.translate(yaml.load(open(mapping_path)), mapping_format=R2RML_URI), format="ttl")

assert compare.isomorphic(expected_mapping, translated_mapping)
4 changes: 2 additions & 2 deletions test/r2rml/YARRRMLTC-0009/test_yarrrmltc0009.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

import os
from ruamel.yaml import YAML
import yarrrml_translator
import yatter
from rdflib.graph import Graph
from rdflib import compare
R2RML_URI = 'http://www.w3.org/ns/r2rml#'
Expand All @@ -21,6 +21,6 @@ def test_yarrrmltc0009():
translated_mapping = Graph()
yaml = YAML(typ='safe', pure=True)
mapping_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'mapping.yml')
translated_mapping.parse(data=yarrrml_translator.translate(yaml.load(open(mapping_path)), mapping_format=R2RML_URI), format="ttl")
translated_mapping.parse(data=yatter.translate(yaml.load(open(mapping_path)), mapping_format=R2RML_URI), format="ttl")

assert compare.isomorphic(expected_mapping, translated_mapping)
Loading

0 comments on commit 689a24c

Please sign in to comment.