Python implementation of SaGe, a stable, responsive and unrestricted SPARQL query server.
Installation in a virtualenv is strongly advised!
Requirements:
- git
- pip
- npm (shipped with Node.js on most systems)
- gcc/clang with c++11 support
- Python Development headers
You should have the
Python.h
header available on your system.
For example, for Python 3.6, install thepython3.6-dev
package on Debian/Ubuntu systems.
git clone https://github.com/sage-org/sage-bgp
cd sage-engine/
pip install pybind11
pip install -r requirements.txt
python setup.py install
A Sage server is configured using a configuration file in YAML syntax.
You will find below a minimal working example of such configuration file.
A full example is available in the config_examples/
directory
name: SaGe Test server
maintainer: Chuck Norris
quota: 75
max_results: 2000
datasets:
-
name: dbpedia
description: DBPedia
backend: hdt-file
file: datasets/dbpedia.2016.hdt
The quota
and max_results
fields are used to set the maximum time quantum and the maximum number of results
allowed per request, respectively.
Each entry in the datasets
field declare a RDF dataset with a name, description, backend and options specific to this backend.
Currently, only the hdt-file
backend is supported, which allow a Sage server to load RDF datasets from HDT files. Sage uses pyHDT to load and query HDT files.
The sage
executable, installed alongside the Sage server, allows to easily start a Sage server from a configuration file using Gunicorn, a Python WSGI HTTP Server.
# launch Sage server with 4 workers on port 8000
sage my_config.yaml -w 4 -p 8000
The full usage of the sage
executable is detailed below:
usage: sage [-h] [-p P] [-w W] [--log-level LEVEL] config
Launch the Sage server using a configuration file
positional arguments:
config Path to the configuration file
optional arguments:
-h, --help show this help message and exit
-p P, --port P The port to bind (default: 8000)
-w W, --workers W The number of server workers (default: 4)
--log-level LEVEL The granularity of log outputs (default: info)
The Sage server is also available through a Docker image. In order to use it, do not forget to mount in the container the directory that contains you configuration file and your datasets.
docker pull callidon/sage
docker run -v path/to/config-file:/opt/data/ -p 8000:8000 callidon/sage sage /opt/data/config.yaml -w 4 -p 8000
Notice: you can also use docker-compose.yml instead of the long docker run command.
To generate the documentation, you must install the following dependencies
pip install sphinx sphinx_rtd_theme sphinxcontrib-httpdomain
Then, navigate in the docs
directory and generate the documentation
cd docs/
make html
open build/html/index.html
Copyright 2017-2018 - GDD Team, LS2N, University of Nantes