Sophia v0.3.0 is released


Since I have not blogged about it (or anything else) before, Sophia (http://crates.io/crates/sophia) needs a bit of an introduction.

It started as a project to teach myself the Rust programming language. I decided to build a linked data toolkit for Rust (because I could not find any compelling one), with genericity and extensibility in mind, and following Rust's motto of "zero-cost abstraction".

This has been a great experience. First, the Rust community (on stackoverflow and reddit) is really welcoming and helpful. Second, a number of people have expressed interest in the project, despite its very early stage, and a few of them have even already contributed pull requests.

So, what can you do in Sophia for the moment (text in italics represent new features of v0.3.0):

  • store and edit RDF graphs and dataset in memory (with different indexing policies, to control the trade-off between retrieval time, on the one hand, and memory usage and modification time, on the other hand),
  • parse and serialize N-Triples and N-Quads,
  • parse RDF/XML,
  • query a simple BGP (i.e. graph with variables) against a data graph.

Plans for the future are:

  • persistent backends for graphs and datasets,
  • support for more syntaxes (Turtle, JSON-LD),
  • full-fledged SPARQL query engine,
  • rule-based inferences.

Thanks to @MarcAntoine-Arnaud and @althanos for their contributions, as well as to @MattesWhite and @Tpt for their feedback.