1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
|
#DOAP
Rasqal RDF Query Library
Dave Beckett
Overview
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 (will be removed in 0.9.30), SPARQL Query 1.1, SPARQL Update
1.1 (no executing) and the 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, the API is mostly
stable but changing slowly. Rasqal supports all of SPARQL 1.0 query and
most of SPARQL 1.1 query. 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:
* An RDF query construction and access API.
* Query language support for SPARQL 1.0 Query.
* Query language support for most of draft SPARQL 1.1 Query.
* Query language support for RDQL. RDQL support will be withdrawn in
Rasqal 0.9.30
* A query execution engine executing sub-queries, aggregate
expressions and grouping.
* The complete SPARQL 1.1 (draft) built-in function and operator
library
* A query result binding API.
* Query result bindings formatting into SPARQL XML, SPARQL JSON, CSV,
TSV, HTML, ASCII tables, RDF/XML, Turtle / N3 and from SPARQL XML,
RDF/XML and Turtle / N3.
* Triple store querying APIs to support running over external RDF
graphs.
* No memory leaks.
* roqet standalone command line RDF query utility program
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.
Supported Query Languages
SPARQL Query Language for RDF
Rasqal provides complete 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.
Rasqal implements most of the SPARQL 1.1 Query and SPARQL 1.1 Update
W3C Working Drafts of 05 January 2012 including aggregates, subqueries,
expression in SELECT, assignment, short form for CONSTRUCT and all the
new set of builtin functions and operators. Property Paths are likely
never be supported since it is a lot of internal work and new APIs
needed.
The details on the Rasqal support for SPARQL 1.1 can be found at the
rasqal testing SPARQL 1.1 page which shows the SPARQL 1.1 tests that
fail and any diagnosis.
RDF Data Query Language (RDQL)
RDQL support will be withdrawn in Rasqal 0.9.30
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 Adds to Querying RDF in SPARQL (LAQRS)
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().
Installation and Documentation
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.
Sources
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.7 or newer to build and run, which can be
downloaded from the same area as the Rasqal source and binaries.
License
This library is free software / open source software released under the
LGPL (GPL) or Apache 2.0 licenses. See LICENSE.html for full details.
Mailing Lists
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-2012 Dave Beckett
Copyright (C) 2003-2005 University of Bristol
|