- Wed 07 August 2019
- #rust, #linked-data
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.