[redland-dev] RDF query (RDQL) work for Redland

Dave Beckett dave.beckett at bristol.ac.uk
Mon Aug 25 12:40:13 BST 2003


I've been playing with providing support for the Squish/RDQL style
querying in Redland and now the W3C's lists are back, I'll report
what I've got so far.

I took the RDQL definition from the Jena RDQL[1] and used that
grammar plus the examples from Jena and @semantics' tutorials to
write lex & yacc versions in C for parsing it. The current state is
that it passes most of the RDQL test suite in Jena bar a few oddities
that need to be worked out (case sensitivity of tokens, difficulties
in identifying pattern literals).

The current software is heading towards being useful - it turns the
query strings into an abstract rdf query structure - but I've not
made a stable release - you can use CVS to see if you like.

It's called
  Rasqal (RDF mutter Query mutter Language) pronounced "Rascal" :)
  -- thanks to Phil McCarthy for the name
and the web site is at
  http://www.redland.opensource.ac.uk/rasqal/
although you should get the latest from CVS or a nightly snapshot at
  http://www.redland.opensource.ac.uk/dist/snapshots/source/

It is LGPL / MPL licensed (probably will change to Apache/BSD).

I'll make a proper release sometime soon, after I release the next
Raptor and Redland.

My current issues are on the TODO page:
  http://www.redland.opensource.ac.uk/rasqal/TODO.html
and include the problems I've found so far and mentioned above.

It's this list of problems/incompatibilities that are probably
of most interest to the www-rdf-rules group.

 * base QNames are now allowed

 * Add the default prefixes (rdf, rdfs, owl, ... ?)

 * Extensions: multiple LIMIT and OFFSET

 * Optionals?

 * Are keywords case sensitive? Jena RDQL has an example with SELECT
   ?select WHERE ... but @semantics' RDQL tutorial has an example with
   USING dcq for ... not FOR

 * Literal languages, datatypes - new "lit"@lang and "lit"@lang^^datatype

 * Pattern literals seem difficult to recognise without context

 * Qnames and URIs - in particular what is <a:b>
   if the prefix a isn't defined till later

 * base URIs? Lots of <relativeURI> seen. @base?

for the latest list, see the URL above.


Dave


[1] http://www.hpl.hp.com/semweb/rdql-grammar.html



More information about the redland-dev mailing list