What's the difference between coordinateDimension and spatialDimension?

  • dimension(): refers to the topological dimension (i.e. point/line/area)
  • coordinateDimension(): returns the dimension of the tuple as given (as statet in the OP)
  • spatialDimension(): returns the dimension of the tuple without the measurement part (with "M" being the measurement in a linear reference system)

As it's pretty obvious for a 2D or "4D" literal, you basically need it to differ between the two "3D" alternatives.

The OGC Document on GeoSPARQL is (slightly) more accurate with:

Property: geo:spatialDimension
The spatial dimension is the dimension of the spatial portion of the direct positions
(coordinate tuples) used in the definition of this geometric object. If the direct positions
do not carry a measure coordinate, this will be equal to the coordinate dimension.

Of the three opinions expressed so far, yours, Benjamin, makes the most sense to me:

X, Y and Z are spatial dimensions and M is some other coordinate/dimension.

Disclaimer: I've never heard of those function names (coordinateDimension and spatialDimension) before so I'm no authority. And I'm not sure I could claim any bounty if ever I'm proved correct!