blazegraph / blazegraph-python

Python client library for Blazegraph
Other
48 stars 13 forks source link

blazegraph-python

Python client library for Blazegraph (Pymantic fork)

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
...
Content-Type:
...
BODY

-

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
...
Content-Type
...
BODY

-

UPDATE

UPDATE
(SPARQL 1.1 UPDATE)

POST Request-URI ?update=...

+

parameters

using-graph-uri

+

using-named-graph-uri

+

UPDATE (DELETE + INSERT)
(DELETE statements
selected by a QUERY plus
INSERT statements from
Request Body using PUT)

PUT Request-URI ?query=...
...
Content-Type
...
BODY

-

UPDATE
(POST with Multi-Part
Request Body)

POST Request-URI ?updatePost
...
Content-Type: multipart/form-data; boundary=...
...
form-data; name="remove"
Content-Type: ...
Content-Body
...
form-data; name="add"
Content-Type: ...
Content-Body
...
BODY

-

Multi-Tenancy API

DESCRIBE DATA SETS

GET /bigdata/namespace

-

CREATE DATA SET

POST /bigdata/namespace
...
Content-Type
...
BODY

-

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
...
Content-Type
...

-

POST Request-URI ?GETSTMTS
...
Content-Type

-

DELETE with Access Path

DELETE Request-URI ?([s|p|o|c]=(uri|literal))+

-

STATUS

GET /status

-

CANCEL

POST /bigdata/sparql/?cancelQuery&queryId=....

-

Quick Start

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']

Requirements

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.

Install

$ python setup.py install

This will install Pymantic and all its dependencies.

Documentation

Generating a local copy of the documentation requires Sphinx:

$ easy_install Sphinx