Skip to main content

Python API to query a SPARQL endpoint

Project description

http://ci.eionet.europa.eu/job/eea/job/sparql-client/job/master/badge/icon

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

Visit http://www.eionet.europa.eu/software/sparql-client/ for documentation and examples.

API

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.

License

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 http://www.mozilla.org/MPL/

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.

Authors

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

Changelog

3.1 - (2017-12-12)

  • Change: Replace eeacms/zptlint with eeacms/plone-test:4 zptlint [avoinea refs #90415]

3.0 - (2017-11-14)

  • Change: Added handler for SAXParseException and wrote a test in order to cover this exception [petchesi-iulian refs #88573]

2.9 - (2017-09-29)

  • Change: Changed the projects tests structure in order to make the tests work [petchesi-iulian refs #88509]

2.8 - (2017-08-16)

  • Change: Added sparql export method formats (xml, xmlschema, json) to be stored and retrieved from cache [zoltan_andras refs #86464]

2.7 - (2017-04-24)

  • Change: updated package information [eduard-fironda]

2.6 - (2016-10-04)

  • Change: added timeout parameter for _get_response

2.5 - (2016-07-29)

  • Bug fix: Safely get __version__ from version.txt [voineali refs #74283]

2.4 - (2016-07-29)

  • Bug fix: Read __version__ from version.txt [voineali refs #74283]

2.3 - (2016-07-19)

  • Change: fixed changelog markup and removed __version__ [alecghica refs #74151]

2.2 - (2016-06-16)

  • Feature: Fix Comment in sparql queries [lucas refs #72876]

2.1 - (2016-06-02)

  • Bug fix: Fix passing of method from service to query

2.0 - (2016-04-18)

  • Bug fix: fixed error reporting when running query [alecghica refs #68990]

1.9 - (2016-02-01)

  • Bug fix: fix timeout exception call now that we have moved to eventlet [ichim-david refs #17334]

1.8 - (2015-10-05)

  • Bug fix: set socket timeout to prevent Zope instances hanging out when the external service is not responding [lucas refs #29063]

1.7 - (2015-07-28)

  • Change: Replace pycurl2 with eventlet [david-batranu refs #25721]

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)

  • Bug fix: 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]
  • Bug fix: 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 sparql.py [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


Release history Release notifications

This version
History Node

3.1

History Node

3.0

History Node

2.9

History Node

2.8

History Node

2.7

History Node

2.6

History Node

2.5

History Node

2.4

History Node

2.3

History Node

2.2

History Node

2.1

History Node

2.0

History Node

1.9

History Node

1.8

History Node

1.7

History Node

1.6

History Node

1.5

History Node

1.4

History Node

1.3

History Node

1.2

History Node

1.1

History Node

1.0

History Node

0.16

History Node

0.15

History Node

0.14

History Node

0.13

History Node

0.12

History Node

0.11

History Node

0.9

History Node

0.8

History Node

0.7

History Node

0.6

Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
sparql-client-3.1.zip (32.9 kB) Copy SHA256 hash SHA256 Source None Feb 23, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page