<img src="rdf-logo.png" align="right" />

# RDF.ex

[![Hex Docs](](
[![Total Download](](

[![ExUnit Tests](](
[![Quality Checks](](

An implementation of the [RDF]( data model in Elixir.

The API documentation can be found [here]( For a guide and more information about RDF.ex and it's related projects, go to <>.

Migration guides for the various versions can be found in the [Wiki](

## Features

- fully compatible with the RDF 1.1 specification
- support of the [RDF-star] extension
- in-memory data structures for RDF descriptions, RDF graphs and RDF datasets
- basic graph pattern matching against the in-memory data structures with streaming-support
- execution of [SPARQL] queries against the in-memory data structures with the [SPARQL.ex] package or against any SPARQL endpoint with the [SPARQL.Client] package
- RDF vocabularies as Elixir modules for safe, i.e. compile-time checked and concise usage of IRIs
- most of the important XML schema datatypes for RDF literals
- support for custom datatypes for RDF literals, incl. as derivations of XSD datatypes via facets 
- sigils for the most common types of nodes, i.e. IRIs, literals, blank nodes and lists
- a DSL resembling Turtle to build RDF descriptions or full RDF graphs in Elixir
- implementations for the [N-Triples], [N-Quads] and [Turtle] serialization formats (including the respective RDF-star extensions); [JSON-LD] and [RDF-XML] are available with the separate [JSON-LD.ex] and [RDF-XML.ex] packages
- implementation of the [RDF Dataset Canonicalization] algorithm  
- validation of RDF data against [ShEx] schemas with the [ShEx.ex] package
- mapping of RDF data structures to Elixir structs and back with [Grax]

## Contributing

There's still much to do for a complete RDF ecosystem for Elixir, which means there are plenty of opportunities to contribute. Here are some suggestions:

- more serialization formats, like [RDFa], [N3], [CSVW], [HDT] etc.
- more XSD datatypes
- improving the documentation

See [CONTRIBUTING]( for details.

## Consulting

If you need help with your Elixir and Linked Data projects, just contact [NinjaConcept]( via <>.

## Acknowledgements

The development of this project was partly sponsored by [NetzeBW]( for [NETZlive](

[JetBrains]( supports the project with complimentary access to its development environments.

## License and Copyright

(c) 2016-present Marcel Otto. MIT Licensed, see [LICENSE]( for details.

[RDF Dataset Canonicalization]: