An asynchronous SPARQL library using aiohttp
Synopsis
from aiosparql.syntax import (
IRI, Namespace, Node, PrefixedName, RDF, RDFTerm, Triples)
# define a namespace
class Boo(Namespace):
__iri__ = IRI("http://boo#")
SomeClass = PrefixedName
website = PrefixedName
label = PrefixedName
# create a node
node = Node("<subject>", {
RDF.type: Boo.SomeClass,
Boo.website: IRI("http://example.org"),
Boo.label: "some label", # "some label" will be automatically escaped
})
# missing prefixed names will show on your IDE and fail on execution
print(Boo.something) # AttributeError!
# create triples
triples = Triples([("s", "p", "o")]) # o is automatically escaped
triples.append(("s", Boo.website, IRI("http://example.org")))
triples.extend([("s", Boo.website, IRI("http://example.org"))])
print(triples) # print the triples is a format usable directly in a SPARQL
# query. It also groups by subject automatically for you
from aiosparql.client import SPARQLClient
client = SPARQLClient("http://dbpedia.org/sparql")
result = await client.query("select * where {?s ?p ?o} limit 1")
# result is a dict of the JSON result
result = await client.update("""
with {{graph}}
insert data {
{{}}
}
""", triples)
# the triples will be automatically indented to produce a beautiful query
from aiosparql.escape import escape_any
print(escape_any(True)) # "true"
print(escape_any("foo")) # "foo"
print(escape_any(5)) # "5"
print(escape_any(5.5)) # "5.5"^^xsd:double
Installation
User space installation
easy_install --user aiosparqlSystem wide installation
easy_install aiosparql
Requirements
Python >= 3.5
Testing
In order for the tests to run, you must have the following Docker containers started:
docker run -d --name travis-virtuoso -p 8890:8890 -e SPARQL_UPDATE=true tenforce/virtuoso:1.2.0-virtuoso7.2.2 docker run -d -p 3030:3030 --name travis-fuseki -e ADMIN_PASSWORD=PASSWORD -e ENABLE_DATA_WRITE=true -e ENABLE_UPDATE=true -e ENABLE_UPLOAD=true secoresearch/fuseki
Credits
This software has been produced by Dacota One.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
aiosparql-0.12.0.tar.gz
(17.7 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aiosparql-0.12.0.tar.gz.
File metadata
- Download URL: aiosparql-0.12.0.tar.gz
- Upload date:
- Size: 17.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.52.0 CPython/3.6.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3c9873e1d74e0be2c7b932308b3267f42071ac3eaceaec4a97b1067a30df5829
|
|
| MD5 |
ddddb34de6482cadbc171092b6695489
|
|
| BLAKE2b-256 |
5bfd83f0905c708892ca5a691c04ac755e84c742caafb377dbc34f2115925866
|
File details
Details for the file aiosparql-0.12.0-py3-none-any.whl.
File metadata
- Download URL: aiosparql-0.12.0-py3-none-any.whl
- Upload date:
- Size: 13.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.52.0 CPython/3.6.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f4a6cdfe8026a5a0914afae4caa881901d135ae2f0539cbb01e1ef7f6818e890
|
|
| MD5 |
1edec756cd524b6b2f2a395012b77f1c
|
|
| BLAKE2b-256 |
90ed535c7655a0eed0a9e9e9fdf5e9b41780003dfd7e26061c7d8e2bdc2421f5
|