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

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


Download files

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

Source Distribution

sparql-client-2.9.zip (31.0 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page