sparqlprog for python
August 12, 2019 · View on GitHub
|Build Status| |PyPI|
This module wraps
sparqlprog <https://github.com/cmungall/sparqlprog>__, providing a
Python API for executing logic program queries over SPARQL endpoints.
Example:
.. code:: python
from prologterms import TermGenerator, PrologRenderer, Program, Var from sparqlprog import SPARQLProg P = TermGenerator()
S = SPARQLProg(endpoint='wd') C = Var('C') N = Var('N')
logic programming query: continent(C), enlabel(C,N)
query = (P.continent(C), P.enlabel(C, N)) for r in S.query(query): print(f"{r['C']} {r['N']}")
Example Notebooks
See:
Notebook_01_Basics <https://nbviewer.jupyter.org/github/cmungall/sparqlprog-python/blob/master/Notebook_01_Basics.ipynb>__Notebook_02_Programs <https://nbviewer.jupyter.org/github/cmungall/sparqlprog-python/blob/master/Notebook_02_Programs.ipynb>__
Installation
To install
::
python3 -m venv venv source venv/bin/activate export PYTHONPATH=.:$PYTHONPATH pip install -r requirements.txt
You will need access to a sparqlprog service. You can use the public one on Heroku (default) or run your own.
Running your own is easy if you have Docker:
::
docker run -p 9083:9083 cmungall/sparqlprog
You can then pass http://localhost:9083 as the service URL
parameter. E.g
Query wikidata for continents and their names:
::
./sparqlprog.py -u http://localhost:9083 -e wd “continent(X),enlabel(X,N)”
You can also use the default service on heroku, but it is not guaranteed to be running:
::
./sparqlprog.py -e wd “continent(X), enlabel(X,N)”
.. |Build Status| image:: https://travis-ci.org/cmungall/sparqlprog-python.svg?branch=master :target: https://travis-ci.org/cmungall/sparqlprog-python
.. |PyPI| image:: https://img.shields.io/pypi/v/sparqlprog.svg :target: https://pypi.python.org/pypi/sparqlprog