SPOT Scene Graph
language en

SPOT Scene Graph

Release: 2026-10-06

Modified on: 2026-10-06
Revision:
1.0.0
Issued on:
2026-10-06
Authors:
Oliver Schulz, Design Computation, RWTH Aachen University
Imported Ontologies:
gom
<https://w3id.org/spot/>
Extended Ontologies:
https://w3id.org/spot/
Download serialization:
JSON-LD RDF/XML N-Triples TTL
License:
https://creativecommons.org/licenses/by/4.0/
Cite as:
Schulz, O. (2026, October 6). SPOT Scene Graph (Version 1.0.0) [Ontology]. Design Computation, RWTH Aachen University. https://w3id.org/spot/sg

Ontology Specification Draft

Abstract

Extension of the Space Types Ontology (SPOT) for quantitative spatial descriptions. It aligns SPOT with the Geometry Metadata Ontology (GOM), so that spaces can be read as coordinate systems and appearances as transformations between them, forming a scene graph. This enables quantitative location descriptions: the position of a space within another space can be stated and computed numerically. It also adds a compact bounding box for spaces.

Introduction back to ToC

The Space Types Ontology (SPOT) describes spaces and how entity spaces appear in reference spaces. SPOT-SG connects this structure to the Geometry Metadata Ontology (GOM): every SPOT Space is treated as a coordinate system and every SPOT Appearance as a coordinate system transformation, so that SPOT instance data can be read as a scene graph. In addition, SPOT-SG introduces a compact bounding box literal for spaces.

Namespace declarations

Table 1: Namespaces used in the document
spot-sg<https://w3id.org/spot/sg#>
spot<https://w3id.org/spot#>
gom<https://w3id.org/gom#>
qudt<http://qudt.org/schema/qudt/>
unit<http://qudt.org/vocab/unit/>
owl<http://www.w3.org/2002/07/owl#>
rdf<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
rdfs<http://www.w3.org/2000/01/rdf-schema#>
xsd<http://www.w3.org/2001/XMLSchema#>
dcterms<http://purl.org/dc/terms/>
vann<http://purl.org/vocab/vann/>
voaf<http://purl.org/vocommons/voaf#>
schema<http://schema.org/>

SPOT-Scene Graph Extension: Overview back to ToC

This ontology has the following classes and properties.

Classes

Object Properties

Data Properties

SPOT-SG Ontology: Description back to ToC

Example of the SPOT-SG alignment: a Damage entity space, its appearance and a Floor Plan space, with the GOM classes and properties inferred through SPOT-SG
Figure 1: ABox example of the alignment of SPOT and GOM: a damage (EntitySpace) positioned in a floor plan (EntitySpace).

Spaces as coordinate systems

Every spot:Space is a gom:CartesianCoordinateSystem. Every Space instance (Physical or Virtual) defines a local coordinate system with an origin and axes. The Physical/Virtual distinction concerns real-world mappability (metric groundability), not the existence of a coordinate system. Two-dimensional spaces are treated as degenerate 3D spaces where the corresponding third axis exists but is constrained to zero. The alignment is declared on the abstract superclass spot:Space, so it covers the entire Space hierarchy.

Note on units: The length unit of a Space is declared with qudt:hasUnit, using units from the QUDT vocabulary such as unit:M or unit:PIXEL. Units without a fixed physical length, such as pixels, are adopted into the reference space at a ratio of 1:1; the actual ratio is carried by the transformation matrix of the Appearance. The same Space can therefore appear at different scales in different reference spaces. A unit MUST NOT be assumed when none is declared: GOM's default of metre does not hold for SPOT spaces, since DocumentSpaces may use pixel coordinates.

Appearances as coordinate system transformations

Every spot:Appearance is a gom:AffineCoordinateSystemTransformation. An Appearance describes how an EntitySpace is positioned within a reference space. This allows gom:fromCoordinateSystem, gom:toCoordinateSystem and gom:hasTransformationMatrix to apply directly to Appearance nodes. This holds for every Appearance regardless of the type of the reference space, so the alignment is declared on the abstract superclass spot:Appearance.

Property alignment

Together, a complete GOM transformation pattern is derivable from standard SPOT instance data. Only the transformation matrix itself has to be asserted. For the example in Figure 1, the asserted data is:

ex:Damage a spot:EntitySpace ;
    spot:hasAssetAppearance ex:DamageAppearance .

ex:DamageAppearance a spot:EntityAppearance ;
    spot:appearsIn ex:FloorPlan ;
    gom:hasTransformationMatrix "[1,0,0,0, 0,1,0,0, 0,0,1,0, 0.21,-0.65,0,1]"^^gom:columnMajorArray .

ex:FloorPlan a spot:EntitySpace .

From this, it may be inferred:

ex:Damage a gom:CartesianCoordinateSystem .
ex:FloorPlan a gom:CartesianCoordinateSystem .
ex:DamageAppearance a gom:AffineCoordinateSystemTransformation .

ex:Damage spot:hasAppearance ex:DamageAppearance .              # hasAssetAppearance is a subproperty
ex:DamageAppearance spot-sg:isAppearanceOf ex:Damage .          # inverse of hasAppearance
ex:DamageAppearance gom:fromCoordinateSystem ex:Damage .        # via isAppearanceOf
ex:DamageAppearance gom:toCoordinateSystem ex:FloorPlan .       # via appearsIn

Single-use Appearances

Each Appearance links exactly one source space to exactly one target space, as gom:fromCoordinateSystem and gom:toCoordinateSystem are functional properties. An Appearance must therefore not be shared by multiple spaces, even if their transformations are identical: a reasoner would otherwise infer that the spaces involved are identical (owl:sameAs). A space that appears in several places gets its own Appearance for each of them.

Bounding box

spot-sg:hasBoundingBox relates a Space to its bounding box in the Space's local coordinate system, encoded as a spot-sg:boundingBoxArray literal: an array with exactly six elements:

[minX, minY, minZ, maxX, maxY, maxZ]

For a two-dimensional Space, the minimum and maximum value of one axis are set to 0. Which axis that is depends on the Space and is not restricted to Z.

Units are those of the Space's local coordinate system and are therefore heterogeneous across a dataset. Meaningful spatial comparison requires unit resolution and transformation matrix application on the client side.

Cross-reference for SPOT-Scene Graph Extension classes, object properties and data properties back to ToC

This section provides details for each class and property defined by SPOT-Scene Graph Extension.

Classes

Appearancec back to ToC or Class ToC

IRI: https://w3id.org/spot#Appearance

has super-classes
Affine Coordinate System Transformation c
is in domain of
is appearance of op

Spacec back to ToC or Class ToC

IRI: https://w3id.org/spot#Space

has super-classes
Cartesian Coordinate System c
is in domain of
has bounding box dp

Object Properties

appears Inop back to ToC or Object Property ToC

IRI: https://w3id.org/spot#appearsIn

has super-properties
to Coordinate System op

is appearance ofop back to ToC or Object Property ToC

IRI: https://w3id.org/spot/sg#isAppearanceOf

Inverse of spot:hasAppearance. This relates an Appearance to the spot:EntitySpace that it positions. It is declared as a subproperty of gom:fromCoordinateSystem so that the source coordinate system of the transformation is inferred automatically from SPOT's hasAppearance relationship. The main purpose of this property is to bridge SPOT's hasAppearance to GOM's fromCoordinateSystem via the inverse and the subproperty pattern. It is not mandatory to assert this property in the ABox, as it is inferred from spot:hasAppearance.
has super-properties
from Coordinate System op
has domain
Appearance c
has range
Entity Space c
is inverse of
has Appearance op

Data Properties

has bounding boxdp back to ToC or Data Property ToC

IRI: https://w3id.org/spot/sg#hasBoundingBox

Relates a Space to its bounding box in the Space's local coordinate system, encoded as a spot-sg:boundingBoxArray literal.
has domain
Space c
has range
bounding box array ep

Legend back to ToC

c: Classes
op: Object Properties
dp: Data Properties
ep: External Properties

Acknowledgments back to ToC

The authors would like to thank Silvio Peroni for developing LODE, a Live OWL Documentation Environment, which is used for representing the Cross Referencing Section of this document and Daniel Garijo for developing Widoco, the program used to create the template used in this documentation.