Description
Triply Use Case 1: Support for GLTF and other 3D formats
Description
There is good support for 3D objects in BIM tools, and there is good support for geo data in GeoSPARQL triple stores. But there is not yet a good way in which I can combine the two. As a data expert, I am able to find files that contain 3D objects in standardized formats (e.g. GLTF), but I do not know how to load these into my GeoSPARQL triple store. When I look this up on the web, I end up in academic papers on how GLTF could be integrated with GeoSPARQL. There are multiple approaches, none of which is supported out-of-the-box by contemporary triple stores.
Actor
- Data Expert
Preconditions
- A 3D object in a file with a popular format (e.g. GLTF).
- A geospatial/GeoSPARQL dataset, in which I can meaningfully position my file.
Postconditions
- A 3D object within my geospatial/GeoSPARQL dataset.
Steps
- I have obtained a file that contains a 3D object in a popular format (e.g. GLTF).
- I can upload that file in a triple store, that may contain geospatial/GeoSPARQL data.
- In a query, I can retrieve the 3D object, in combination with other geospatial/GeoSPARQL data (from my local store and/or from a remote endpoint).
Implementation suggestions
3D objects could be serialized in GeoSPARQL literals, similar to the current support for geo serializations in GeoJSON/GML/WKT literals (the name geo:hasModel
could be improved):
<my-feature>
geo:hasGeometry <my-geometry>;
geo:hasModel <my-model>.
<my-geometry> geo:asWKT 'MultiPolygon(...)'^^geo:wktLiteral.
<my-model> geo:asGltf '...'^^geo:gltfLiteral.
3D object serializations could be either text-based or binary, depending on their standardized or de facto serialization form in other contexts. There are antecedents for encoding binary data in literals, e.g. xsd:base64Binary
(link).