Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dajobe/rasqal
Redland Rasqal RDF Query Library
https://github.com/dajobe/rasqal
c rdf sparql
Last synced: 2 days ago
JSON representation
Redland Rasqal RDF Query Library
- Host: GitHub
- URL: https://github.com/dajobe/rasqal
- Owner: dajobe
- License: other
- Created: 2010-08-17T17:46:18.000Z (over 14 years ago)
- Default Branch: master
- Last Pushed: 2024-10-02T02:44:31.000Z (4 months ago)
- Last Synced: 2025-01-30T14:09:01.863Z (9 days ago)
- Topics: c, rdf, sparql
- Language: C
- Homepage: http://librdf.org/rasqal/
- Size: 25.5 MB
- Stars: 72
- Watchers: 14
- Forks: 25
- Open Issues: 8
-
Metadata Files:
- Readme: README.html
- Changelog: ChangeLog
- License: COPYING
- Authors: AUTHORS
Awesome Lists containing this project
README
Rasqal RDF Query Library
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 Query 1.0, 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, CSV, TSV,
RDF/XML and Turtle / N3.Rasqal was designed to work closely with the
Redland RDF library
and the Raptor
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 SPARQL 1.1 Query.
- 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 (1.0), W3C Recommendation 15 January 2008.
Rasqal implements most of the
SPARQL 1.1 Query Language
and
SPARQL 1.1 Update
W3C Recommendations 21 March 2013 including aggregates,
subqueries, expression in SELECT, assignment, short form for
CONSTRUCT
and all the new set of builtin functions and
operators.
Unimplemented parts of SPARQL 1.1:
-
BIND
scope -
VALUES
: part of federated query - Decimal and double canonical format details
-
EXISTS
/NOT EXISTS
- JSON result format reading
MINUS
-
Property Paths: These are likely never be supported
since it is a lot of work (estimate: 3 months full time) and might
need multiple new APIs to talk to the storage layer. -
SERVICE
: Part of federated query
Out of scope parts of SPARQL 1.1:
- Entailment and inference: Rasqal is not an inference engine
- SPARQL Federated Query
-
SPARQL Update (also called SPARQL Protocol): The Update
syntax is parsed with parser name 'sparql-update' but nothing is
executed inside Rasqal. Supporting SPARQL Update requires a protocol
server that responds to requests to perform operations on a graph
store. Rasqal is a query library and does not have an event loop or
triple store.
Redstore is a system
supporting SPARQL Update and Service Description built with Rasqal by
using Redland librdf for graph storage and query.
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.
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/.
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-2024 Dave Beckett
Copyright (C) 2003-2005 University of Bristol