rdf-ex/README.md
2019-04-06 03:00:22 +02:00

3.6 KiB

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 https://www.cokron.com/kontakt

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