yarrrml keyword graph is supported, but is not part of yarrrml spec
x-m-el opened this issue · comments
Describe the bug
Given a yarrrml which includes a graph defined as graph: https://example.com/$(id)
, yatter will convert this correctly, even though yarrrml does not support the keyword graph
, instead graphs
should be used (see https://rml.io/yarrrml/spec/#graphs)
To Reproduce
mappings:
test:
graph: https://example.com/$(id)
s: https://example.com/$(id)
po:
- [a, ext:Test]
Will convert correctly to rml, even though graph
is not a valid keyword.
Additional context
This is not a big problem, as still parsing correctly while containing a typo, can be seen as a feature.
It did cause confusion when using morph_kgc, which had a different output for the given yarrrml (using graph
) versus the converted rml file with yatter (which has correct syntax).
=> this might have been a fluke, but the comment still remains correct.
Hi!
YARRRML spec is not totally complete, and for some cases I also used the test-cases used by the reference formulation (yarrrrml-parser). You can see an example in this file: https://github.com/oeg-upm/yatter/blob/main/test/yarrrml-parser-tests/graph/mapping.yml. This mapping also works in Matey/YARRRML-parser
Maybe it’s good to open an issue in the yarrrml spec: https://github.com/kg-construct/yarrrml-spec
This could also mean that RMLio/yarrrml-parser
implemented the spec incorrectly. What is the reason that you'd see this as an error in the spec (where the spec should also allow usage of graph
), instead of an error in this other parser?
I'm part of the team creating the new RML ontology and its extensions, so I'm aware of the status of all specs. Additionally, yarrrml-parser is the reference implementation of the spec (yarrrml and yarrrml-parser were created by IDLab at Ghent U. in parallel) so that is why I asked to better open and issue there, bc we will take into account and review the spec.