rdf-ex/README.md
2020-12-12 23:47:33 +01:00

3.7 KiB

RDF.ex

CI Hex.pm Hex Docs Total Download License

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
  • 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
  • execute 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
  • define 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 description DSL resembling Turtle in Elixir
  • implementations for the N-Triples, N-Quads and Turtle serialization formats; JSON-LD and RDF-XML are available with the separate JSON-LD.ex and RDF-XML.ex packages
  • validate data against ShEx schemas via the ShEx.ex package

Contributing

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

  • more serialization formats, like RDFa, N3, CSVW, HDT etc.
  • more XSD datatypes
  • improving documentation

See CONTRIBUTING for details.

Consulting, Partnership and Sponsoring

If you need help with your Elixir and Linked Data projects, just contact info@cokron.com or visit https://www.cokron.com/kontakt.

Acknowledgements

The development of this project was partly sponsored by NetzeBW for NETZlive.

(c) 2017-present Marcel Otto. MIT Licensed, see LICENSE for details.