Overview

HTTPS SSH
Yertle
======

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.


Target
------

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:

   http://www.w3.org/2011/rdf-wg/wiki/Turtle_Test_Suite,
   https://dvcs.w3.org/hg/rdf/raw-file/default/rdf-turtle/tests-ttl/manifest.ttl

   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
test/all.yeti.

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.


Author
------

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