I just released a new version of my Rasqal RDF Query
Library for two main new features:
- Support more of the new W3C SPARQL working drafts of 1 June 2010 for
SPARQL 1.1
Query
and
SPARQL 1.1
Update.
- Support building with Raptor V2 API as
well as Raptor V1 API..
The main change is to start to add to Rasqal's APIs and query engine
changes for the new SPARQL 1.1 working drafts. This release adds support
the syntax for all the changes for Query and Update. The new draft
syntax is available via the 'laqrs' query language name, until the
SPARQL 1.1 syntax is finalized. The 'sparql' query language provides
SPARQL 1.0 support.
On Query 1.1, the addition is primarily syntax and API support for the
new syntax. There is expression execution for the new functions IF()
,
URI()
, STRLANG()
, STRDT()
, BNODE()
, IN()
and NOT IN()
which
are noew usable as part of the normal expression grammar. The existing
aggregate function support was extended to add the new SAMPLE()
and
GROUP_CONCAT()
but remains syntax-only. Finally the new GROUP BY
with HAVING
conditions were added to the syntax and had consequent API
updates but no query engine execution of them.
For Update 1.1 the full set of update operations syntax were added and
they create API structures. Note, however there seem to be some
ambiguities in the draft syntax especially around multiple optional
tokens in a row near WITH
which are particularly hard to implement in
flex and bison (aka "lex and yacc").
The main non-SPARQL 1.1 related change is to allow building Rasqal with
Raptor V2 APIs rather than V1. Raptor V2 is in beta so this is not a
final API and is thus not the default build, it has to be enabled with
--enable-raptor2
with configure. When raptor V2 is stable (2.0.0),
Rasqal will require it.
The changes to Rasqal in this release, in summary, are:
- Updated to handle more of the new syntax defined by the
SPARQL 1.1
Query
and
SPARQL 1.1
Update
W3C working drafts of 1 June 2010
- Added execution support for new SPARQL 1.1 query built-in
expressions IF(), URI(), STRLANG(), STRDT(), BNODE(), IN() and NOT
IN().
- Added an 'html' query result table format from patch by Nicholas J
Humfrey
- Added API support for group by
HAVING
expressions.
- Added XSD Date comparison support.
- Support building with Raptor V2 API if
configured with
--with-raptor2
.
- Many other bug fixes and improvements were made.
- Fixed Issues:
#0000352,
#0000353,
#0000354,
#0000360,
#0000374,
#0000377 and
#0000378
See the Rasqal 0.9.20 Release
Notes
for the full details of the changes.
Get it at http://download.librdf.org/source/rasqal-0.9.20.tar.gz.
PS The source code control has also moved to GIT and hosted at
GitHub.