RMLio / RML-Mapper

Generate High Quality Linked Data from multiple originally (semi-)structured data (legacy)
http://RML.io
52 stars 21 forks source link

Integrate R2RML-F #3

Open ktk opened 8 years ago

ktk commented 8 years ago

For post-processing data I often create some shell-pipe-hacks where I post-process data mapped from ugly CSV files. This is not very portable as its outside the RML mapping language.

Christophe Debruyne proposed R2RML-F at WWW2016. It looks like the implemented it into DB2Triples so I guess it should be possible to integrate this into RML-Mapper: https://github.com/CNGL-repo/db2triples

Would be great to have this functionality in RML-Mapper

SemanticBeeng commented 5 years ago

"R2RML-F, an extension to R2RML, that adopts ECMAScript for capturing domain knowledge and for which we have developed a prototype"

There is also FnO : "Mapping languages allow us to define how Linked Data is generated from raw data, but only if the raw data values can be used as is to form the desired Linked Data. Since complex data transformations remain out of scope for mapping languages, these steps are often implemented as custom solutions, or with systems separate from the mapping process. The former data transformations remain case-specific, often coupled with the mapping, whereas the latter are not reusable across systems. In this paper, we propose an approach where data transformations (i) are defined declaratively and (ii) are aligned with the mapping languages"

https://link.springer.com/chapter/10.1007/978-3-319-58451-5_3

Seems FnO is more general through the Function abstraction over implementation. Thoughts?

bjdmeest commented 5 years ago

Indeed, FnO is supported in the current RML-Mapper (https://github.com/RMLio/RML-Mapper#extension-fno), and in the next version of RML-Mapper (https://github.com/RMLio/rmlmapper-java#including-functions). Any implementation can be added, not just an ECMAScript interpreter. The combination of FnO and RML is discussed in above mentioned paper or on https://fno.io/rml/ . If any questions, feel free to ask! :)