QGISSPARQL is a QGIS plugin that enables bidirectional integration between Linked Data (RDF/SPARQL) and Geographic Information Systems (GIS).
It allows users to both:
- 🔽 Import RDF data from SPARQL endpoints into QGIS layers.
- 🔼 Export GIS layers into RDF triples (GeoSPARQL-compatible).
QGISSPARQL bridges the gap between the Semantic Web and GIS workflows, providing a unified environment to:
- Query SPARQL endpoints (e.g., Virtuoso, Apache Jena Fuseki).
- Load results directly as vector layers in QGIS.
- Convert geospatial layers into RDF triples.
- Publish or reuse data in Linked Data ecosystems.
Unlike traditional workflows that require scripts or intermediate formats, QGISSPARQL enables end-to-end RDF ↔ GIS integration directly inside QGIS.
- Query any SPARQL 1.1 endpoint.
- Integration with data.world datasets.
- Background execution (non-blocking tasks).
- Automatic geometry detection from WKT.
- Dynamic attribute mapping.
- Convert vector layers (point, line, polygon) to RDF.
- Turtle serialization support.
- URI generation strategies (UUID or attribute-based).
- Mapping of attributes to RDF vocabularies (GeoSPARQL, SKOS, Data Cube).
- Searchable URI selection with autocompletion.
- Unified dock interface with tabs (Import / Export).
- Vocabulary loading (GeoSPARQL, DataCube, SKOS, FOAF).
- Persistent configuration (e.g., data.world API tokens).
- Intelligent mapping UI with preview of auto-generated URIs.
The plugin provides a unified dock with two main tabs:
Execute SPARQL queries and load results into QGIS.
Convert GIS layers into RDF triples.
Clone or download this repository:
git clone https://github.com/LambdaGeo/qgissparqlCopy to your QGIS plugins directory:
- Linux:
~/.local/share/QGIS/QGIS3/profiles/default/python/plugins/ - Windows:
%APPDATA%\QGIS\QGIS3\profiles\default\python\plugins\
Restart QGIS and enable the plugin via:
Plugins → Manage and Install Plugins
pip install pandas setuptools --break-system-packages
pip install datadotworld SPARQLWrapper rdflib --break-system-packagespip install pandas setuptools datadotworld SPARQLWrapper rdflibYou can configure your API token in three ways:
-
Inside QGIS plugin settings (Save Token button in the dock).
-
Environment variable:
DW_AUTH_TOKEN=your_token -
CLI configuration:
dw configure
- Open:
Vector → QGISSPARQL → Open Dock. - Select Source type (SPARQL endpoint or data.world).
- Write or load a SPARQL query (formatting and indentation are preserved).
- Define geometry column (WKT).
- Execute import.
- Select a vector layer.
- Define Base namespace and ID attribute.
- Map attributes to RDF properties (searchable).
- Optionally load a vocabulary (GeoSPARQL, etc.).
- Export to
.ttl.
- Sérgio Souza Costa — https://github.com/profsergiocosta
- Nerval de Jesus Santos Junior — https://github.com/nervaljunior
- Felipe Martins Sousa
- José Magno Pinheiro Alves
- Denilson da Silva Bezerra
LambdaGeo Research Group Universidade Federal do Maranhão (UFMA)
If you use this software, please cite:
@article{costa2026qgissparql,
author = {Costa, Sergio Souza and Santos Junior, Nerval and Sousa, Felipe Martins and Alves, Jose Magno Pinheiro and Bezerra, Denilson da Silva},
title = {QGISSPARQL: Bidirectional Integration between Linked Data and Geographic Information Systems},
journal = {Journal of Open Source Software},
year = {2026},
note = {Under review}
}Contributions, issues, and feature requests are welcome! Please check CONTRIBUTING.MD.
MIT License

