No description
Find a file
2019-04-29 20:45:06 +02:00
bench Add various benchmarks regarding URI creation 2017-08-19 22:56:17 +02:00
config Remove mix_test_watch config 2018-06-13 21:56:12 +02:00
docs Add RDF.IRI, use it instead of URI and use the term IRI consistently 2017-08-20 22:35:14 +02:00
lib Fix warning 2019-04-29 20:45:06 +02:00
priv/vocabs Use Turtle files for the predefined vocabulary namespaces 2017-08-10 23:45:28 +02:00
src Add RDF.IRI, use it instead of URI and use the term IRI consistently 2017-08-20 22:35:14 +02:00
test Add digit_count and fraction_digit_count to RDF.Decimal 2019-04-22 11:17:16 +02:00
.editorconfig Add Turtle and JSON to .editorconfig 2019-04-02 00:41:58 +02:00
.gitignore Add .tool-versions to gitignore 2018-07-13 00:55:56 +02:00
.iex.exs Update .iex.exs 2018-10-03 23:44:21 +02:00
.travis.yml Drop support for OTP < 20 2019-03-31 05:24:44 +02:00
CHANGELOG.md Fix missing unescaping of language literals during Turtle parsing 2019-04-28 00:35:23 +02:00
CODE_OF_CONDUCT.md Add CODE_OF_CONDUCT 2017-06-25 00:24:39 +02:00
CONTRIBUTING.md Add CONTRIBUTING.md 2017-06-25 20:19:41 +02:00
LICENSE.md Update copyright year 2018-03-01 13:15:15 +01:00
mix.exs Add links to website 2019-04-06 02:24:22 +02:00
mix.lock Update dependencies 2019-04-06 01:42:14 +02:00
README.md Fix wording 2019-04-08 20:55:16 +02:00
VERSION Prepare release 0.6.0 2019-04-06 03:04:18 +02:00

RDF.ex

Travis Hex.pm Inline docs

An implementation of the RDF data model in Elixir.

For more about RDF.ex and it's related projects, go to https://rdf-elixir.dev.

Features

  • fully compatible with the RDF 1.1 specification
  • in-memory data structures for RDF descriptions, RDF graphs and RDF datasets
  • ability to execute SPARQL queries against the in-memory data structures via the SPARQL.ex package or against any SPARQL endpoint via the SPARQL.Client package
  • support for RDF vocabularies via Elixir modules for safe, i.e. compile-time checked and concise usage of IRIs
  • XML schema datatypes for RDF literals (not yet all supported)
  • 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

Upgrading to RDF.ex 0.6

RDF.Graph.new and RDF.Dataset.new

The arguments of the constructor functions of RDF.Graph and RDF.Dataset have changed. They now take the name of the graph resp. dataset as a name option. So, for example this

RDF.Graph.new(EX.GraphName, data)

now has to be written like this

RDF.Graph.new(data, name: EX.GraphName)

An option argument was needed for the new prefixes option and was impossible to provide in a maintainable way with the old interface.

See this section of the guide for more on the new prefix management features.

Equality of graphs and datasets

With prefixes being added to the RDF.Graph data structure, you can no longer rely on == for equality comparisons between graphs and datasets, since graphs with the same data but different prefixes will be unequal in terms of ==. You should use the new RDF.Graph.equal?/2 and RDF.Dataset.equal?/2 functions instead.

See this section of the guide for more on that.

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
  • more XSD datatypes
  • improve documentation

see CONTRIBUTING for details.

Consulting and Partnership

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

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