Expressive RDF Mapper (XRM) is an RDF mapping language for humans. It greatly facilitates the mapping of non-RDF resources to RDF, offering several features such as autocomplete, code lookup, and a type-safe experience.
XRM is available as an Eclipse and Visual Studio Code Plugin.
Expressive RDF Mapper allows you to express data mappings to RDF in a friendly domain specific language (DSL) and generates output in R2RML, RML, CARML and CSV on the Web format.
Expressive RDF Mapper is free software, see the MIT License and our product page at zazuko.com for more details. The software is available under the MIT license, source code can be found here. We offer commercial support for it, get in contact with us.
output r2rml
map Employee from EMPLOYEE {
subject template "http://data.example.com/employee/{0}" with EMPNO;
types ex.Employee
properties
ex.name from ENAME;
}
Expressive RDF Mapper is using Java, a Java runtime environment (JRE) is required to run the mapper in Eclipse or Visual Studio Code. We recommend Adoptium for those who do not have a JRE installed yet.
We've tested the plugin with:
- OpenJDK 11
- OpenJDK 17
-
Download and install Eclipse "Eclipse IDE 2023-12" (or newer): https://www.eclipse.org/downloads/packages/
- Package: Eclipse IDE for Java and DSL Developers
- Hint: The Eclipse Installer now also includes a JRE. A Java 11 or newer JRE/JDK is required.
-
Start Eclipse and install the extension:
- Help > Install New Software
- Click
Add..
to add a new repository and fill in the following details:- Name: Expressive RDF Mapper (XRM) Updates
- Location: https://download.zazukoians.org/rdf-mapping-dsl/updates/
- Select Expressive RDF Mapper (XRM) from the list and click
Next>
- Confirm the security warning about unsigned content by selecting the "com.zazuko.rdfmapping.dsl" bundles and features and clicking on
Trust Selected
If you receive an error message about missing dependencies, then make sure that the option "Contact all update sites during install to find required software" is selected in the install dialog.
The plugin will not work properly with older Eclipse releases! Please install the recommended Eclipse version mentioned in step 1).
- Download the extension: https://download.zazukoians.org/expressive-rdf-mapper/expressive-rdf-mapper-1.6.0.vsix.
- Open Visual Studio Code and navigate to the "Extensions" (select View > Extensions from the menu).
- Top-right corner of the "Extensions" pane, use the
...
button and choose "Install from VSIX…". - Select the
.vsix
file you downloaded, click Install.
The extension will detect and handle .xrm
mapping files.
Details of editor issues are shown in the problems view. Use View > Problems (Ctrl-Shift-M)
to activate it.
For complete examples, have a look at the projects in the mapping-examples folder. Once you installed the extension a good way to start is to start playing with them.
- Open one of the samples like
employee-mapping
and try to modify the current mapping. - Xtext constantly watches the
.xrm
files in your project and validates the syntax (ie. on save). When the syntax is valid, it automatically writes the generated mapping file(s) to./src-gen
.
-
Video Tutorial Mapping non-RDF data to a graph: Hands-on
-
Template for creating automated CSV to RDF pipelines
-
Template for creating automated relational database (RDB) to RDF pipelines
-
Template for creating automated JSON or XML to RDF pipelines
-
Try out mapping and transforming a MySQL database into a graph using our Gitpod sample workspace (in the cloud, without requiring a local toolchain installation)
-
The Mapping Language describes the elements of the language.
-
Consult our product page for general information.
-
The blogpost RDF and Domain Specific Languages (DSL) - A Perfect Match describes our motivation and some ideas for future developments. Note that this was written for the first release of XRM, some of the ideas are already supported now.
Expressive RDF Mapper is free software, released under the MIT License
For commercial support, consult our product page at zazuko.com for more details.
Please report issues and feature requests on Github. If you have other questions please post a message in the RDF.community discussion forum.