Simple RDF store and RDF/Turtle parser in Yeti

Yertle is a simple in-memory RDF datastore and RDF/Turtle
parser/serialiser written in Yeti (http://mth.github.com/yeti/)
without additional library dependencies.


Yertle aims to provide:

 * A 100% spec-compliant RDF/Turtle parser.

   This means the final W3C Turtle spec -- in my opinion the W3C have
   overcomplicated the Turtle language a bit since its submission, but
   a new implementation really has to follow the new spec.

 * An RDF/Turtle serialiser.

 * A simple single-graph datastore capable of doing reasonably quick
   indexed lookups (but not SPARQL queries) for use in programs with
   fairly simple RDF requirements.

 * Tolerable read/write performance -- aiming for within a factor of 5
   of current C implementations.

Current status

 * The parser passes all 159 current W3C spec tests at the time of
   writing, see:


   There are also a few additional tests covering things not covered
   by the spec tests, see test/test_read.yeti.

 * The serialiser successfully serialises all of the test files (plus
   the odd additional test) such that they can be parsed in again.

 * The datastore can store and do indexed retrieval, but it has a
   very basic API.

To build and run the tests, just run the Yeti compiler (yc) on

This represents both the first time I've written any substantial sort
of parser, and my first attempt at significant data-processing using
Yeti. Having a go at these things was among the reasons I started
writing it. So it's unlikely to represent best practice in either.


Chris Cannam, cannam@all-day-breakfast.com
March 2013