Adding 3D Visualization to
the SPARQL Query Loop

Erwin Folmer (,
Wouter Beek (

30th August 2018

Benefits of 3D

  • Interpretability: we live in a 3D world.
  • Expressiveness: z-axis gives an additional dimension to plot (statistical) data on.
  • Muliple perspectives: e.g., different views of the same 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.


A well-known concept from iterative development: read-eval-print-loop (REPL).

Applied to query writing:

  • Read a query entered by a user.
  • Evaluate the query and return a result set.
  • Print the result set, so that the user can make sense of the results.
  • The user can inspect the results and change the query (Loop).

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, serialized in GML ánd WKT:

REPL: Evaluate

3D support in triple stores is not that great:

  • 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


REPL: Print Visualize

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)

Energielabels 🗲

Queries the following datasets:

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

Monumenten ⛪

Queries the following datasets:

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

KvK 🏪

Queries the following datasets:

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

Bedrijfsvestigingen 🏬

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

Adding 3D Visualization to
the SPARQL Query Loop

Thanks for your attention!

Erwin Folmer (,
Wouter Beek (