Repository for the ECPPM 2026 paper "Leveraging the SPARQL SERVICE Clause for External Computation on Linked Building Data".
-
Install everything
npm install npm run validate
-
Install a triplestore — GraphDB is simplest:
Download the free GraphDB Desktop installer from Ontotext and run it. It installs GraphDB as a local application and starts it for you (look for the GraphDB icon in your system tray/menu bar, or launch it from your Applications/Start menu).
Open http://localhost:7200, create a repository named
geo-satellite-test, then loadpackages/geo-query-satellite/datasets/geo-spatial-graph.ttlinto it. -
Setup
.envcd packages/geo-query-satellite cp .env.example .env # set GEO_ENDPOINT_URL / GEO_GRAPH_IRI set -a && source .env && set +a cd ../..
-
Run the satellite
npm run start:geo-satellite
-
Switching to a different triplestore (Fuseki, Blazegraph): edit
GEO_ENDPOINT_URLin.env, re-source it, then restart the satellite. It only bootstraps its in-memory index from the endpoint on startup.
See packages/geo-query-satellite/README.md for satellite configuration, verification steps, and troubleshooting.
npm run test:matrixThe reported measurements are committed as CSVs in
measurements/. The scripts that
produced them are in
packages/geo-query-satellite/measure/;
re-running them writes fresh CSVs next to the scripts, not into
measurements/.
Each measure_<store>.py runs all three query variants (BGP_QUERY,
BIND_QUERY, BASIC_QUERY) 100 times against a running satellite + backend
pair and writes its own CSV. Requires Python 3.11+ (stdlib only) and a running
triplestore with the satellite pointed at it:
cd packages/geo-query-satellite/measure
cp .env_GraphDB .env # or .env_fuseki / .env_blazegraph
set -a && source .env && set +a
python3 measure_graphdb.py --endpoint "$GEO_ENDPOINT_URL" --requests 100.env_blazegraph and measure_blazegraph.py ship with a <blazegraph-host>
placeholder and need to be pointed at a running Blazegraph instance.
GraphDB supports the native GeoSPARQL/BASIC query out of the box. Fuseki
needs the jena-geosparql extension (docs).
Blazegraph has no standards-conformant GeoSPARQL support (Section III of the
paper), so its BASIC_QUERY section reports "no result".
@inproceedings{schulz2026satellite,
title = {Leveraging the SPARQL SERVICE Clause for External Computation on Linked Building Data},
author = {Schulz, Oliver and Oraskari, Jyrki and G{\"o}bels, Anne and Werbrouck, Jeroen and Beetz, Jakob},
booktitle = {Proceedings of the 16th European Conference on Product and Process Modelling (ECPPM 2026)},
year = {2026},
month = {July},
note = {In press}
}Placeholders (booktitle, publisher, pages, DOI) will be updated once the proceedings are published.