Home

Awesome

Py SPARQL Transformer

Write your SPARQL query directly in the JSON-LD you would like to have in output.

Looking for the JavaScript Version?

News

Table of Contents

Query in JSON

The core idea of this module is writing in a single file the query and the expected output in JSON.

Two syntaxes are supported: plain JSON and JSON-LD. Here the examples in the 2 formats for the query of cities.

{
  "proto": [{
    "id" : "?id",
    "name": "$rdfs:label$required",
    "image": "$foaf:depiction$required"
  }],
  "$where": [
    "?id a dbo:City",
    "?id dbo:country dbr:Italy"
  ],
  "$limit": 100
}
{
  "@context": "http://schema.org/",
  "@graph": [{
    "@type": "City",
    "@id" : "?id",
    "name": "$rdfs:label$required",
    "image": "$foaf:depiction$required"
  }],
  "$where": [
    "?id a dbo:City",
    "?id dbo:country dbr:Italy"
  ],
  "$limit": 100
}

For the list of all properties and modifiers, read the full documentation.

How to use

Install by pip.

pip install SPARQLTransformer

Use in your JS application (node or browser).

from SPARQLTransformer import sparqlTransformer

out = sparqlTransformer(query, options)

The first parameter (query) is the query in the JSON format. The JSON can be:

The options parameter is optional, and can define the following:

OPTIONDEFAULTNOTE
contexthttp://schema.org/The value in @context. It overwrites the one in the query.
sparqlFunctionNoneA function receiving in input the transformed query in SPARQL, returning a Promise. If not specified, the module performs the query on its own<sup id="a1">1</sup> against the specified endpoint.
endpointhttp://dbpedia.org/sparqlUsed only if sparqlFunction is not specified.
debugFalseEnter in debug mode. This allow to print in console the generated SPARQL query.

See tests.py for further examples.

Credits

If you use this module for your research work, please cite:

Pasquale Lisena, Albert Meroño-Peñuela, Tobias Kuhn and Raphaël Troncy. Easy Web API Development with SPARQL Transformer. In 18th International Semantic Web Conference (ISWC), Auckland, New Zealand, October 26-30, 2019.

BIB file

Pasquale Lisena and Raphaël Troncy. Transforming the JSON Output of SPARQL Queries for Linked Data Clients. In WWW'18 Companion: The 2018 Web Conference Companion, April 23–27, 2018, Lyon, France. https://doi.org/10.1145/3184558.3188739

BIB file

<!-- python setup.py sdist bdist_wheel twine upload --repository SPARQLTransformer-TEST dist/* twine upload --repository SPARQLTransformer dist/* -->