Skip to main content

Python API to query a SPARQL endpoint

Project description

sparql-client is a library to query a SPARQL endpoint. It will automatically convert literals to the coresponding Python types.

Visit for documentation and examples.


First you open a connection to the endpoint:

s = sparql.Service(endpoint, "utf-8", "GET")

Then you make the query:

result = s.query(statement)

If you have made a SELECT query, then you can read the result with fetchone() or fetchall():

for row in result.fetchone():

If you have made an ASK query, then you can read the result (a boolean value) with hasresult():

works = result.hasresult()

Conversion of data types

The library will automatically convert typed literals to a coresponding simple type in Python. Dates are also converted if the dateutil library is available.

Running the unit tests

If you have nose installed, just run nosetests in the top-level directory. Some tests require the python-dateutil (version 1.5) or mock libraries. Tested under Python 2.4 through 2.7.


The contents of this package are subject to the Mozilla Public License Version 1.1 (the “License”); you may not use this package except in compliance with the License. You may obtain a copy of the License at

Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.

The Original Code is SPARQL client version 1.0.

The Initial Owner of the Original Code is European Environment Agency (EEA). Portions created by Eau de Web for EEA are Copyright (C) European Environment Agency. All Rights Reserved.


  • Søren Roug, EEA
  • Alex Morega, Eau de Web


1.6 - (2014-09-15)

  • Feature: change the default query method from GET to POST. [pasoviul refs #20501]

1.5 - (2013-11-21)

  • Feature: added “method” as a parameter for query() and now we can use either GET or POST methods [ghicaale refs #14491]

1.4 - (2013-07-08)

  • Bugfix: Use a temporary file for parsing instead of using a huge string [szabozo0 refs #14826]

1.3 - (2013-05-20)

  • Bug fix: fixed ReST merkup under HISTORY.txt [ghicaale refs #14554]

1.2 - (2013-05-20)

  • Upgrade step:
    • install system dependency libcurl3-dev (Debian/Ubuntu) / curl-devel (CentOS)
    • [szabozo0 refs #14349]
  • Change: Use pycurl2 instead of pycurl [szabozo0 refs #14349]
  • Bugfix: Use pycurl instead of urllib2, added timeout functionality [szabozo0 refs #14349]

1.1 - (2013-03-15)

  • Feature: Removed sparql error handling quickfix [szabozo0 refs #13705]

1.0 - (2013-01-28)

  • Feature: Handle sparql errors [szabozo0 #9608]

0.16 - (2013-01-15)

  • Bug fix: Strip the endpoint url [szabozo0]

0.15 - (2013-01-10)

  • Packaging fix: inline contents of version.txt [moregale]

0.14 - (2013-01-10)

  • Bug fix: updated History.txt [ghicaale]
  • Buf fix: unit test [moregale]

0.13 - (2012-09-11)

  • Change: changed from HTTP POST to GET [roug]

0.12 - (2012-09-11)

  • No changes

0.11 - (2012-04-15)

  • Feature: added copyright message to [roug]

0.10 - (2012-03-05)

  • Feature: map the xsd:int type to Python’s int [moregale]

0.9 - (2011-10-24)

  • Feature: new argument convert_type for unpack_row [moregale]

0.8 - (2011-08-29)

  • First version available on PyPI [roug, moregale]

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for sparql-client, version 1.6
Filename, size File type Python version Upload date Hashes
Filename, size (27.6 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page