To install the QSKOS plugin in QGIS:
- Download the plugin: Click on the green "<> Code" button on the GitHub repository page and select "Download ZIP" from the popout menu.
- Install in QGIS: In QGIS, go to Plugins → Manage and Install Plugins → Install From Zip.
- Select the ZIP file: In the file picker, navigate to and select the downloaded ZIP file.
- Complete installation: Click on "Install Plugin" and accept the security warning by clicking "Yes".
QSKOS is a QGIS plugin that enables semantic annotation of geographic features using controlled vocabularies. It allows you to add meaningful, standardized labels and descriptions to your vector data layers, with all data stored directly in GeoPackage files.
The plugin is designed for researchers who need to:
- Add semantic meaning to geographic features
- Use standardized vocabularies for consistent data annotation
- Enable better data discovery and interoperability
- Work with portable, self-contained GeoPackage files
- NEW: Select a GeoPackage file as your data container
- All plugin data (vocabularies, configurations, annotations) are stored in the GeoPackage
- The GeoPackage becomes the single source of truth for your project
- Import SKOS vocabularies from RDF files (Turtle, JSON-LD) or CSV files
- Vocabularies are stored as tables directly in your GeoPackage
- Support for multiple vocabularies in the same GeoPackage
- Language support for German and English
- Connect your vector data layers to vocabulary tables
- Bind multiple vocabularies to a single feature layer
- All binding information is stored in the GeoPackage configuration table
- Browse vocabulary concepts in a tree structure
- Create annotation fields on your vector layers
- Use Value Relation widgets for easy concept selection
- Add semantic labels to your geographic features
- Generate hierarchical symbology from your annotations
- Visualize data based on semantic concepts
- Automatically include all bound vocabularies
- Layers must be loaded in the project from a GeoPackage before you can start annotation
- You need at least one vector layer with geographic features in a GeoPackage
- You need a SKOS vocabulary in RDF or CSV format
- Open the QSKOS plugin dock widget
- Go to the "GeoPackage" tab
- Click "Select GeoPackage" and choose your
.gpkgfile - This is mandatory - all other functions depend on having an active GeoPackage
- Go to the "Vocabulary" tab
- Select your source type (Turtle, JSON-LD, or CSV)
- Choose the language (German or English)
- Select your vocabulary file
- Click "Load into GeoPackage"
- The vocabulary will be stored as a table in your GeoPackage
- Go to the "Layer" tab
- Select your feature layer from the dropdown (only shows layers from your GeoPackage)
- View available vocabularies in the "Bound Vocabularies" list
- Click "Bind Vocabulary" to connect your layer to a vocabulary
- You can bind multiple vocabularies to the same layer
- In the "Layer" tab, select a vocabulary from your bound vocabularies list
- Browse the concept hierarchy tree
- Check the concepts you want to use for annotation
- Annotation fields will be automatically created on your vector layer
- Open your layer's attribute table to add semantic annotations
- Go to the "Symbology" tab
- Click "Generate Rules from Annotations"
- The plugin will create hierarchical rule-based symbology
- Your features will be visualized based on their semantic annotations
- GeoPackage requirement: All layers must be loaded from a GeoPackage file for the plugin to work properly
- Single source of truth: All plugin data is stored in the GeoPackage, not in the QGIS project file
- Portability: You can move your GeoPackage file and all annotations will be preserved
- No automatic deletion: Unbinding vocabularies or unchecking concepts does NOT delete annotation fields - you must remove them manually if needed
- Vocabulary formats: Supported formats include Turtle (.ttl), JSON-LD (.jsonld), and CSV with specific structure
For CSV files to be imported as vocabularies, they must follow this column structure:
| Column Name | Description | Example |
|---|---|---|
concept |
URI of the concept | http://example.org/concept1 |
prefLabel |
Preferred labels with language tags (pipe-separated for multiple languages) | `Label@de |
definition |
Definitions with language tags (same format as prefLabel) | `Definition@de |
broader |
Parent concept URI (empty for root concepts) | http://example.org/parent |
inScheme |
URI of the concept scheme (optional) | http://example.org/scheme |
Language Tagging: Use @de for German and @en for English labels. Multiple languages can be separated with pipes: Label@de|Label@en
- Standardized annotation: Use controlled vocabularies for consistent data labeling
- Improved data quality: Add semantic meaning to your geographic features
- Better interoperability: Enable data sharing and integration with other systems
- Enhanced discovery: Make your data more findable and understandable
- Portable projects: All data is contained in the GeoPackage file
- Project independence: Work with the same data across different QGIS projects
The QSKOS plugin uses a dedicated configuration table (qskos_layer_config) inside your GeoPackage to track:
- Vocabulary registrations
- Layer bindings
- Language settings
All vocabulary tables are stored directly in the GeoPackage as attribute tables, making your data completely self-contained and portable.
The QSKOS plugin bridges the gap between geographic data and semantic web technologies, enabling richer, more meaningful spatial data management while maintaining data portability and project independence.