Rasqal is a free software / Open Source C library that handles Resource Description Framework (RDF) query language syntaxes, query construction and execution of queries returning results as bindings, boolean, RDF graphs/triples or syntaxes. The supported query languages are SPARQL 1.0, RDQL, Draft SPARQL Query 1.1, Update 1.1 Syntax and Experimental SPARQL extensions (LAQRS). Rasqal can write binding query results in the SPARQL XML, SPARQL JSON, CSV, TSV, HTML, ASCII tables, RDF/XML and Turtle / N3 and read them in SPARQL XML, RDF/XML and Turtle / N3.
Rasqal was designed to work closely with the Redland RDF library and the Raptor[2] RDF Syntax Library but is entirely separate from both.
This is a beta quality library - the code is mature but the API is still changing and the SPARQL support is under development. It is a portable library and has been tested on multiple POSIX systems and architectures. Rasqal has no known memory leaks.
A summary of the changes can be found in the NEWS file and detailed API changes in the release notes.
Rasqal provides:
Known bugs and issues are recorded in the Redland issue tracker.
Rasqal does not provide an RDF API or triple store, but relies on external libraries implementing the triple store API providing matched RDF data originally from a specified content URI. Rasqal ships with a triple store implementation using the output of an RDF parser from Raptor. This can be called using the standalone command line roqet query utility giving a query language identifier (default sparql), the query string and optionally the data to use unless it is declared in the query string.
Rasqal is used inside Redland to provide support for query languages, a query API and a result bindings API over graphs stored in indexed Redland triple stores. Since this can index the triples it will be faster than the default rasqal triple store of reading the triples from Raptor into memory when the queries are complex.
Rasqal provides support for the W3C SPARQL Query Language 1.0
developed by the W3C
RDF Data Access Working Group,
as defined in
SPARQL Query Language for RDF, W3C Recommendation 15 January 2008.
It currently implements most of the functionality except for some
of the trickier corner cases (FILTER
scope, date
comparison, DISTINCT
and REDUCED
).
For detailed information on the implementation state, see the Rasqal
bugs in the Redland issue tracker.
It also implements most of the
SPARQL 1.1 Query
and
SPARQL 1.1 Update
W3C Working Drafts of 12 May 2011 including aggregates, subqueries,
expression in SELECT, assignment, short form
for CONSTRUCT
and all the new set of builtin functions
and operators. Property Paths will probably never be done since it
is essentially a new query language.
Rasqal provides a complete implementation of the RDQL language, as defined in RDQL - A Query Language for RDF, W3C Member Submission 9 January 2004 based on the earlier versions in Jena. RDQL RDF Data Query Language and the RDQL Grammar. The Jena RDQL Tutorial gives an introduction on the language. Rasqal currently passes all the Jena RDQL test suite bar a couple. Detail of the status of the RDQL support is given in the Redland issue tracker.
LAQRS is
an experimental set of syntax extensions for SPARQL. The
syntax and features may change at any time. At present Rasqal
provides parsing and API support for alternate update syntaxes,
the EXPLAIN
keyword, plus executing a few experimental
extension functions: NOW()
/ CURRENT_DATETIME()
, FROM_UNIXTIME()
and
TO_UNIXTIME()
.
The public API is described in the API reference. It is demonstrated in the roqet utility program which shows how to call the query engine and operate over the query results. When Rasqal is used inside Redland, the Redland documentation explains how to call the query engine and contains several example programs.
To build and install Rasqal from sources see the Installation document.
The packaged sources are available from http://download.librdf.org/source/ (master site) and also from the SourceForge site. The development GIT sources can also be browsed on GitHub or checked out at git://github.com/dajobe/rasqal.git
Rasqal requires Raptor 2.0.4 or newer to build and run, which can be downloaded from the same area as the Rasqal source and binaries.
This library is free software / open source software released under the LGPL (GPL) or Apache 2.0 licenses. See LICENSE.html for full details.
The Redland mailing lists discusses the development and use of Rasqal and Redland as well as future plans and announcement of releases.
Copyright (C) 2003-2011 Dave Beckett
Copyright (C) 2003-2005 University of Bristol