71f710e44e
Migrate GitHub Actions to erlef/setup-beam |
||
---|---|---|
.github/workflows | ||
bench | ||
earl_reports | ||
lib | ||
priv | ||
src | ||
test | ||
.dialyzer_ignore | ||
.editorconfig | ||
.formatter.exs | ||
.gitignore | ||
.iex.exs | ||
CHANGELOG.md | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
doap.ttl | ||
LICENSE.md | ||
mix.exs | ||
mix.lock | ||
rdf-logo.png | ||
README.md | ||
VERSION |
RDF.ex
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 https://rdf-elixir.dev.
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
- 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 contact@ninjaconcept.com.
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) 2017-present Marcel Otto. MIT Licensed, see LICENSE for details.