Semantic Web and RDF library for Python
#Features Support Matrix
REST Endpoint |
Call / parameters |
Pyton client (Pymantic) |
|
QUERY |
GET Request-URI ?query=... |
+ |
|
POST Request-URI ?query=... |
+ |
||
parameters |
timestamp |
- |
|
explain |
- |
||
analytic |
- |
||
default-graph-uri |
+ |
||
named-graph-uri |
+ |
||
format |
- |
||
baseURI |
- |
||
includeInferred |
- |
||
timeout |
- |
||
${var}=Value |
- |
||
headers |
X-BIGDATA-MAX-QUERY-MILLIS |
+ |
|
INSERT |
|||
INSERT RDF (POST with Body) |
POST Request-URI |
- |
|
INSERT RDF (POST with URLs) |
POST Request-URI ?uri=URI |
- |
|
DELETE |
|||
DELETE with Query |
DELETE Request-URI ?query=... |
- |
|
DELETE with Body (using POST) |
POST Request-URI ?delete |
- |
|
UPDATE |
|||
UPDATE |
POST Request-URI ?update=... |
+ |
|
parameters |
using-graph-uri |
+ |
|
using-named-graph-uri |
+ |
||
UPDATE (DELETE + INSERT) |
PUT Request-URI ?query=... |
- |
|
UPDATE |
POST Request-URI ?updatePost |
- |
|
Multi-Tenancy API |
|||
DESCRIBE DATA SETS |
GET /bigdata/namespace |
- |
|
CREATE DATA SET |
POST /bigdata/namespace |
- |
|
DESTROY DATA SET |
DELETE /bigdata/namespace/NAMESPACE |
- |
|
Transaction Management API |
|||
POST /bigdata/tx => txId |
- |
||
COMMIT-TX |
POST /bigdata/tx/txid?COMMIT |
- |
|
LIST-TX |
GET /bigdata/tx |
- |
|
CREATE-TX |
POST /bigdata/tx(?timestamp=TIMESTAMP) |
- |
|
STATUS-TX |
POST /bigdata/tx/txId?STATUS |
- |
|
ABORT-TX |
POST /bigdata/tx/txId?ABORT |
- |
|
PREPARE-TX |
POST /bigdata/tx/txId?PREPARE |
- |
|
Access Path Operations |
|||
FAST RANGE COUNTS |
GET Request-URI ?ESTCARD&([s|p|o|c]=(uri|literal))[&exact=(true|false)+ |
- |
|
HASSTMT |
GET Request-URI ?HASSTMT&([s|p|o|c]=(uri|literal))[&includeInferred=(true|false)+ |
- |
|
GETSTMTS |
GET Request-URI ?GETSTMTS |
- |
|
POST Request-URI ?GETSTMTS |
- |
||
DELETE with Access Path |
DELETE Request-URI ?([s|p|o|c]=(uri|literal))+ |
- |
|
STATUS |
GET /status |
- |
|
CANCEL |
POST /bigdata/sparql/?cancelQuery&queryId=.... |
- |
from pymantic import sparql
server = sparql.SPARQLServer('http://127.0.0.1:9999/bigdata/sparql')
# Loading data to Blazegraph
server.update('load <file:///tmp/data.n3>')
# Executing query
result = server.query('select * where { <http://blazegraph.com/blazegraph> ?p ?o }')
for b in result['results']['bindings']:
print "%s %s" (b['p']['value'], b['o']['value']
Pymantic requires Python 2.6 or higher. Lepl is used for the Turtle and NTriples parser. httplib2 is used for HTTP requests and the SPARQL client. simplejson and lxml are required by the SPARQL client as well.
$ python setup.py install
This will install Pymantic and all its dependencies.
Generating a local copy of the documentation requires Sphinx:
$ easy_install Sphinx