Dear all,
I'd like to introduce you to RDF.ex, an effort to implement the Semantic Web Standards in Elixir. It currently consists of the following projects:
- https://github.com/marcelotto/rdf-ex - RDF.ex implements the RDF data model on an in-memory data structure for RDF datasets and provides support for N-Triples, N-Quads and Turtle serializations
- https://github.com/marcelotto/jsonld-ex - JSON-LD.ex implements the JSON-LD 1.0 spec (remote context processing and framing still missing)
- https://github.com/marcelotto/sparql-ex - SPARQL.ex is the currently ongoing work on implementing a SPARQL engine for RDF.ex (currently only simple queries are supported; see the README for the current state)
- https://github.com/marcelotto/sparql_client - a SPARQL client supporting the full SPARQL 1.1 query language and protocol
For those who haven't heard of Elixir yet, let me introduce it in a few words: Elixir [1] is a dynamic, functional, concurrent language designed for building scalable and maintainable applications. In terms of syntax and productivity, it feels like Ruby but runs on the rock-solid Erlang VM which is used by WhatsApp for example and about which is said by some people [2] to handle about 90% of the internet traffic. Since the semantics of Elixir is so close to Erlang semantics they have a much nicer integration story, compared to for example the Java VM and the functional languages running on it, because there's virtually no impedance mismatch.
Elixir offers great solutions for the development of modern web applications with Phoenix [3] and bulletproof embedded systems with Nerves [4], which leverage the advantages of the Erlang platform in these domains. For many on this list the Absinthe project [5], IMO one of the nicest GraphQL implementations around, might be also of interest.
Any help or feedback is highly appreciated.
Kind regards,
Marcel Otto
[1] https://elixir-lang.org/
[2] https://youtu.be/077-XJv6PLQ?t=106
[3] https://phoenixframework.org/
[4] https://nerves-project.org/
[5] http://absinthe-graphql.org/