May 02, 2015 .. currentmodule:: rdfextras.sparql

sparql - SPARQL main API

TODO: merge this first bit from into rest of doc... updating all along the way.

SPARQL implementation on top of RDFLib

Implementation of the W3C SPARQL language (version April 2005). The basic class here is supposed to be a superclass of rdfextras.sparql.graph; it has been separated only for a better maintainability.

There is a separate description for the functionalities.

For a general description of the SPARQL API, see the separate, more complete description.

Variables, Imports

The top level ( module of the Package imports the important classes. In other words, the user may choose to use the following imports only:

from rdflibUtils   import myTripleStore
from rdflibUtils   import retrieveRDFFiles
from rdflibUtils   import SPARQLError
from rdflibUtils   import GraphPattern

The module imports and/or creates some frequently used Namespaces, and these can then be imported by the user like:

from rdflibUtils import ns_rdf

Finally, the package also has a set of convenience string defines for XML Schema datatypes (ie, the URI-s of the datatypes); ie, one can use:

from rdflibUtils import type_string
from rdflibUtils import type_integer
from rdflibUtils import type_long
from rdflibUtils import type_double
from rdflibUtils import type_float
from rdflibUtils import type_decimal
from rdflibUtils import type_dateTime
from rdflibUtils import type_date
from rdflibUtils import type_time
from rdflibUtils import type_duration

These are used, for example, in the sparql-p implementation.

The three most important classes in RDFLib for the average user are Namespace, URIRef and Literal; these are also imported, so the user can also use, eg:

from rdflib import Namespace, URIRef, Literal


  • Version 1.0: based on an earlier version of the SPARQL, first released implementation
  • Version 2.0: version based on the March 2005 SPARQL document, also a major change of the core code (introduction of the separate GraphPattern rdflibUtils.graph.GraphPattern class, etc).
  • Version 2.01: minor changes only: - switch to epydoc as a documentation tool, it gives a much better overview of the classes - addition of the SELECT * feature to sparql-p
  • Version 2.02: - added some methods to myTripleStore rdflibUtils.myTripleStore.myTripleStore to handle Alt and Bag the same way as Seq - added also methods to add() collections and containers to the triple store, not only retrieve them
  • Version 2.1: adapted to the inclusion of the code into rdflib, thanks to Michel Pelletier
  • Version 2.2: added the sorting possibilities; introduced the Unbound class and have a better interface to patterns using this (in the BasicGraphPattern class)

@author: Ivan Herman

@license: This software is available for use under the W3C Software License

@contact: Ivan Herman,

@version: 2.2

class rdfextras.sparql.SPARQLError(msg)[source]

Am SPARQL error has been detected

Table Of Contents

Previous topic

SPARQL in RDFLib (Version 2.1)

Next topic

algebra - SPARQL Algebra