oeg-upm / mapeathor

Translator of spreadsheet mappings into R2RML, RML or YARRRML
https://morph.oeg.fi.upm.es/tool/mapeathor
Apache License 2.0
30 stars 10 forks source link

Read predicate from source #36

Closed nleguillarme closed 2 years ago

nleguillarme commented 2 years ago

Hi, to generate my RML rules, I need to read a predicate IRI from the source file.

In the Predicate column of the Predicate_Object tab, I wrote {interaction_type_uri}, where interaction_type_uri is the name of a column in my csv file containing the IRI of a relation (e.g. _http://purl.obolibrary.org/obo/RO_0002470_).

This creates a rml:reference to "interaction_type_uri" in the RML rules. However, in the resulting triples file, the predicate is interpreted as a string (between quotes) and not a valid IRI (between <>).

Is is possible to read a predicate IRI from the source file, and if so, how can I do that ?

dachafra commented 2 years ago

If I understand well, I think this is a problem with the engine you are using to generate the actual RDF graph, as a predicate is always an IRI, and cannot be a string.

nleguillarme commented 2 years ago

Hi @dachafra, thank you. I've created a ticket in the issue tracker of SDM-RDFizer (which I see you are also involved in).

dachafra commented 2 years ago

your welcome ;-) yes, I'm one of the authors as well haha

dachafra commented 2 years ago

@nleguillarme btw, we've released a new [R2]RML tool that you may want to give a try as well ;-) https://github.com/oeg-upm/morph-kgc

nleguillarme commented 2 years ago

Nice ! I just tested Morph-KGC very quickly (and it works great !). How does it compare with SDM-RDFizer ?

dachafra commented 2 years ago

It will mainly depend on your own use case of course. Based on our experiments we will say that SDM-RDFizer works pretty well when you have a lot of joins in the mapping rules, while when there is a mix of joins, self-join, normal predicate-object-maps, and very large data sources, would be better to use morph-kgc. Additionally, SDM-RDfizer has more configurations that you can try and use (big data sources or not, order the mappings or not, remove duplicates or not), while morph-kgc mainly works at the mapping level, creating the partitions.

For more info read: http://www.semantic-web-journal.net/system/files/swj2924.pdf and https://arxiv.org/pdf/2201.09694.pdf

nleguillarme commented 2 years ago

At first glance, it seems that morph-kgc could better suit my needs, but I'll try both. Well, it looks like both mapeathor and morph-kgc/SDM-RDFizer are mature enough for me to replace my old YARRRMLParser-RMLMapper pipeline. Thank you for the excellent work 👍🏻

anaigmo commented 2 years ago

Thank you for using it! 😄