Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FS Geo Query Conference Monorepo

Repository for the ECPPM 2026 paper "Leveraging the SPARQL SERVICE Clause for External Computation on Linked Building Data".

Setup

  1. Install everything

    npm install
    npm run validate
  2. 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 load packages/geo-query-satellite/datasets/geo-spatial-graph.ttl into it.

  3. Setup .env

    cd packages/geo-query-satellite
    cp .env.example .env      # set GEO_ENDPOINT_URL / GEO_GRAPH_IRI
    set -a && source .env && set +a
    cd ../..
  4. Run the satellite

    npm run start:geo-satellite
  5. Switching to a different triplestore (Fuseki, Blazegraph): edit GEO_ENDPOINT_URL in .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.

Backend compatibility matrix

npm run test:matrix

Reproducing the paper's benchmark (Table 4)

The 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".

Cite as

@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.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages