Adding 3D Visualization to the SPARQL Query Loop

August 30th, 2018

Erwin Folmer (,
Wouter Beek (

Benefits of 3D

We are used to interpreting and interacting with a 3D world.
The z-axis gives an additional dimension to plot (statistical) data on.
Muliple perspectives
Allows for different views for the same objects (e.g., building).

Cadastre use cases for 3D SPARQL

  1. Displaying one building with multiple businesses and appartments in it.
  2. Drone no-fly zones contain height information.
  3. Emergency services must determine the reachability of an appartment within a building.

REPL: read-eval-print-loop

A well-known concept from programming, applied to query writing:

Process a user-entered query.
Calculate the result set for the user query.
Show the result set to the user.
The user inspects the results and changes the query.

REPL: Read (1/2)

3D data must be represented in a specific way.

REPL: Read (2/2)

A feature can have 2D ánd 3D shapes; it can have serializations in GML ánd in WKT.

REPL: Evaluate

3D support in triple stores:

  • Most stores do not implement 3D GeoSPARQL syntax, but some do.
  • Most stores have bad performance for 3D geo-spatial queries, but some have good performance.
  • Some stores change the 3D data merely by loading it, e.g., turning it into 2D data.
  • Some stores cannot load larger 3D shapes.
  • Commercial triple stores are not necessarily better than FOSS (if fact: they are often worse).

REPL: Print

SPARQL result set without 3D support.

REPL: Print

SPARQL result set with 3D support.

Examples of 3D SPARQL Queries

Cadastre buildings in context

Queries the following datasets:

  • Cadastre Buildings Registry (BAG)
  • Chamber of Commerce (KvK)
  • Cultural Heritage images (RCE)
  • Dutch Monument Registry (RCE)
  • Energylabels (RVO)

Energy labels 🗲

Queries the following datasets:

  • BAG (KDP Productie)
  • RVO energielabels (KDP Labs)

Monuments ⛪

Queries the following datasets:

  • BAG (KDP Productie)
  • RCE beeldbank (KDP Labs)
  • RCE monumenten (KB endpoint)

Chamber of Commerce 🏪

Queries the following datasets:

  • BAG (KDP Productie)
  • Kamer van Koophandel bedrijven (KDP Labs)

Number of businesses 🏬

Queries the following datasets:

  • BAG (KDP Productie)
  • CBS buurten (KDP Labs; binnenkort KDP Productie)

3D rooftops

LOD2 (Level of Detail)

Multiple appartments within one building


3D variable bindings

Implemented by binding variables that follow specific naming patterns, compatible with SPARQL 1.1.

ConceptVariable name
Complex label?varLabel
Simple label?varName

Future challenges

  • Display textures on 3D shapes
  • Store and retrieved detailed 3D models (BIM)
  • More 3D data as Linked Data, e.g., rooftops, underground structures

Thank you for your attention!