2019-07-21 22:08:20 +00:00
< img src = "rdf-logo.png" align = "right" / >
2017-06-11 12:32:26 +00:00
# RDF.ex
2020-10-11 09:43:03 +00:00
[![CI ](https://github.com/rdf-elixir/rdf-ex/workflows/CI/badge.svg?branch=master )](https://github.com/rdf-elixir/rdf-ex/actions?query=branch%3Amaster+workflow%3ACI)
2017-06-25 19:13:13 +00:00
[![Hex.pm ](https://img.shields.io/hexpm/v/rdf.svg?style=flat-square )](https://hex.pm/packages/rdf)
2020-12-12 22:47:33 +00:00
[![Hex Docs ](https://img.shields.io/badge/hex-docs-lightgreen.svg )](https://hexdocs.pm/rdf/)
[![Total Download ](https://img.shields.io/hexpm/dt/rdf.svg )](https://hex.pm/packages/rdf)
[![License ](https://img.shields.io/hexpm/l/rdf.svg )](https://github.com/rdf-elixir/rdf-ex/blob/master/LICENSE.md)
2017-06-25 19:13:13 +00:00
2017-06-11 12:32:26 +00:00
An implementation of the [RDF ](https://www.w3.org/TR/rdf11-primer/ ) data model in Elixir.
2016-09-30 14:36:50 +00:00
2019-08-20 19:28:32 +00:00
The API documentation can be found [here ](https://hexdocs.pm/rdf/ ). For a guide and more information about RDF.ex and it's related projects, go to < https: // rdf-elixir . dev > .
2019-04-06 00:24:22 +00:00
2020-10-13 13:24:31 +00:00
Migration guides for the various versions can be found in the [Wiki ](https://github.com/rdf-elixir/rdf-ex/wiki ).
2017-06-24 22:25:07 +00:00
## Features
2017-07-05 21:27:55 +00:00
- fully compatible with the RDF 1.1 specification
2022-01-11 22:07:21 +00:00
- support of the [RDF-star] extension
2017-06-24 22:25:07 +00:00
- in-memory data structures for RDF descriptions, RDF graphs and RDF datasets
2020-06-14 20:07:22 +00:00
- basic graph pattern matching against the in-memory data structures with streaming-support
2022-01-11 22:07:21 +00:00
- 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
2020-06-14 20:07:22 +00:00
- 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
2021-03-28 02:15:18 +00:00
- support for custom datatypes for RDF literals, incl. as derivations of XSD datatypes via facets
2017-08-22 21:31:16 +00:00
- sigils for the most common types of nodes, i.e. IRIs, literals, blank nodes and lists
2022-04-11 07:23:08 +00:00
- a DSL resembling Turtle to build RDF descriptions or full RDF graphs in Elixir
2021-12-13 11:12:18 +00:00
- 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
2021-03-28 02:15:18 +00:00
- validation of RDF data against [ShEx] schemas with the [ShEx.ex] package
2022-01-11 22:07:21 +00:00
- mapping of RDF data structures to Elixir structs and back with [Grax]
2016-09-30 14:51:59 +00:00
2016-09-30 14:36:50 +00:00
2019-04-06 00:24:22 +00:00
## Contributing
2016-11-27 14:17:20 +00:00
2021-03-28 02:15:18 +00:00
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:
2017-06-24 22:25:07 +00:00
2020-11-16 12:28:15 +00:00
- more serialization formats, like [RDFa], [N3], [CSVW], [HDT] etc.
2018-03-10 00:47:04 +00:00
- more XSD datatypes
2021-03-28 02:15:18 +00:00
- improving the documentation
2016-11-27 14:17:20 +00:00
2020-12-12 22:47:33 +00:00
See [CONTRIBUTING ](CONTRIBUTING.md ) for details.
2016-11-27 14:17:20 +00:00
2018-08-24 22:53:37 +00:00
2021-03-28 02:15:18 +00:00
## Consulting
2016-11-27 14:17:20 +00:00
2022-01-06 20:50:20 +00:00
If you need help with your Elixir and Linked Data projects, just contact [NinjaConcept ](https://www.ninjaconcept.com/ ) via < contact @ ninjaconcept . com > .
2016-11-27 14:17:20 +00:00
2020-11-16 12:31:11 +00:00
## Acknowledgements
The development of this project was partly sponsored by [NetzeBW ](https://www.netze-bw.de/ ) for [NETZlive ](https://www.netze-bw.de/unsernetz/netzinnovationen/digitalisierung/netzlive ).
2021-03-28 02:15:18 +00:00
[JetBrains ](https://www.jetbrains.com/?from=RDF.ex ) supports the project with complimentary access to its development environments.
2021-03-17 20:36:40 +00:00
2018-08-24 22:53:37 +00:00
2016-11-27 14:17:20 +00:00
## License and Copyright
2020-12-12 22:47:33 +00:00
(c) 2017-present Marcel Otto. MIT Licensed, see [LICENSE ](LICENSE.md ) for details.
2017-06-24 22:25:07 +00:00
[RDF.ex]: https://hex.pm/packages/rdf
2018-05-15 19:39:52 +00:00
[JSON-LD.ex]: https://hex.pm/packages/json_ld
2020-11-16 12:28:15 +00:00
[RDF-XML.ex]: https://hex.pm/packages/rdf_xml
2018-11-04 21:27:25 +00:00
[SPARQL.ex]: https://hex.pm/packages/sparql
2018-05-15 19:39:52 +00:00
[SPARQL.Client]: https://hex.pm/packages/sparql_client
2019-08-20 19:28:32 +00:00
[ShEx.ex]: https://hex.pm/packages/shex
2021-01-07 23:49:04 +00:00
[Grax]: https://hex.pm/packages/grax
2021-12-13 11:12:18 +00:00
[RDF-star]: https://w3c.github.io/rdf-star/cg-spec
2017-06-24 22:25:07 +00:00
[N-Triples]: https://www.w3.org/TR/n-triples/
[N-Quads]: https://www.w3.org/TR/n-quads/
[Turtle]: https://www.w3.org/TR/turtle/
[N3]: https://www.w3.org/TeamSubmission/n3/
2020-06-01 14:44:06 +00:00
[JSON-LD]: https://www.w3.org/TR/json-ld/
2017-07-31 21:21:09 +00:00
[RDFa]: https://www.w3.org/TR/rdfa-syntax/
2017-06-24 22:25:07 +00:00
[RDF-XML]: https://www.w3.org/TR/rdf-syntax-grammar/
2020-06-01 14:44:06 +00:00
[CSVW]: https://www.w3.org/TR/tabular-data-model/
[HDT]: http://www.rdfhdt.org/
2019-08-20 19:28:32 +00:00
[SPARQL]: https://www.w3.org/TR/sparql11-overview/
[ShEx]: https://shex.io/