Expressive RDF Mapper (XRM) is an RDF mapping language for humans. It greatly facilitates the mapping of non-RDF resources to RDF.
XRM is available as an Eclipse and Visual Studio Code Plugin.
You can buy the software here
Challenges in mapping data to RDF
Mapping existing data into graph-based structures is an essential part of building a knowledge graph. Knowledge engineers take highly specialized domain knowledge and map it to better understandable and re-usable terms and structures that can be used outside the context of the initial application. The Data-Centric Manifesto explains why this is useful for any organization.
A simplified process might look like this:
- Identify and analyze interesting data sources
- Identify the data format, like RDBs, XML, JSON, CSV, etc.
- Find a tool that supports that particular input data format and RDF output.
- Map to the RDF domain model (schema/ontology/taxonomy)
In the domain of RDF knowledge graphs, there are multiple standards available, like:
- R2RML for relational databases
- CSV on the Web and RML for tabular data like CSV or Excel
- RML for XML and JSON
We know that using any of these mapping standards in real-world projects with large and diverse data sources is a challenge, and that is why we have created XRM.
Creating mappings in any of these standards is a tedious and error-prone task, especially for more complex data sources. Due to different output formats, it is also not possible to switch between these standards.
The Expressive RDF Mapper (XRM) addresses these problems. It supports knowledge engineers in the mapping process by providing an expressive RDF mapping language for humans.
Knowledge engineers can focus on their job: Distraction-free mapping of domain knowledge into re-usable RDF terms.
Code assist supports the user in efficient mapping and reduces typos and errors to non-existent terms. To enable that, RDF terms and the structure of the input file are part of the mapping.
In case any of the structures changes, refactoring support takes care of updating the references everywhere, even across multiple mapping files.
I was used to constructing mappings by hand and following up by fixing typos and inconsistencies in the mapping.
Using XRM has streamlined the process immensely, especially the syntax validation and type-checking has proven invaluable! XRM guides you through the mapping process and suggests only valid options that make sense in the particular mapping language like R2RML.
I use XRM within Eclipse and can leverage the support of version control, making it much easier to track the evolution of a mapping.
Nicky van Oorschot, Knowledge Architect at Netage
The syntax of our RDF mapping language is to the point and independent of formats like R2RML, RML or CSV on the Web. Knowledge Engineers can focus on what is important, not on implementation details of the mapping language.
The mappings are stored in text form on disk. Version tracking can be done with established tools and workflows around version control systems.
Output Formats & Tested Implementations
The Expressive RDF Mapper (XRM) supports the following output formats:
Depending on the output format, different features are available in the mapping language, as not all mapping languages allow the same level of expressiveness.
The mapping language is reported to work with the following implementations of these standards:
- Zazuko Pipeline - Our RDF ETL pipelines support CSV on the Web in streaming mode. This is recommended for large CSV based datasets.
- carml - An implementation of the RML mapping language that supports CSV, XML and JSON input. XRM supports some of the RML extensions carml provides.
- Stardog - An RDF graph database that implements R2RML for virtual graphs.
- R2RML Parser - An Open Source implementation of R2RML.
Expressive RDF Mapper (XRM) is implemented using the Xtext Framework. It is available as an extension for the Eclipse IDE where all features are available and supported. In case there is no existing Eclipse installation, we recommend the Eclipse Xtext distribution for download.
This version is using the Language Server Protocol. Some syntax-checks are not available in the Visual Studio Code extension, in particular it might be possible to use XRM language features that are not available in the particular output format. This is due to restrictions in the current Xtext Language Server Protocol support.
If you are interested in getting support for the Visual Studio Code extension for your team, please get in contact with us.
Expressive RDF Mapper is a commercial product, see the End-User License Agreement for details. A single-user license is valid for all 1.x versions of Expressive RDF Mapper.
(Governmental organizations are not covered by the Non-Commercial License. Contact us for assistance in identifying your license needs.)
For your convenience, you can buy a single-user license:
If you need more than one license or would like to pay in a different way, please get in contact with us.
We do not check the license in the software itself, there is no need for a key to run the Expressive RDF Mapper. With the purchase of a license you enable further development.
Installation & Support
For installation and usage examples, consult the according page on GitHub.
Please report issues and feature requests on Github. If you have other questions please post a message in the RDF.community discussion forum.
We build an experimental version of the extensions for the Web-based Eclipse Theia Cloud & Desktop IDE Platform. This version is not available to the general public at the moment. If you are interested in this version for your team, please get in contact with us.