Spatial.use.jts does not get enabled for the database

Hi, I am using v7.9.1 with Enterprise license for 1-year and I am evaluating Stardog's geospatial features. Below you can see the server startup messages:

Stardog server 7.9.1 started on Mon May 23 12:35:17 EEST 2022.

Stardog server is listening on all network interfaces.
HTTP server available at http://localhost:5820.




I downloaded and placed the JTS jar in the appropriate folder:

$ $ ls /media/sf_VM_Shared/PHD/stardog-7.9.1/server/ext

After server startup I check for the spatial related properties to verify that JTS is enabled:

$ $StardogBaseDir/bin/stardog-admin property get | grep spatial
| spatial.use.jts | true      |

I used the following file before startup:

$ cat /home/tioannid/Downloads/StarDog/
# Enable support for JTS in the geospatial module
# Bulk loading optimization properties

There are no databases yet:

$ $StardogBaseDir/bin/stardog-admin db list
No databases in the system; use the 'create' command to make a new database.

I create the new spatially enabled (with JTS) database with the following command:

time  $StardogBaseDir/bin/stardog-admin db create -o spatial.enabled=true spatial.use.jts=true -n scalability_10K  /datasets/Scalability/10K
Bulk loading data to new database scalability_10K.
Loaded 10,000 triples to scalability_10K from 1 file(s) in 00:00:02.269 @ 4.4K triples/sec.
Successfully created database 'scalability_10K'.

real	0m4,492s
user	0m3,156s
sys	0m0,570s

Checking if the database has been created:

$ $StardogBaseDir/bin/stardog-admin db list
|    Databases    |
| scalability_10K |

Checking "scalability_10K" database metadata for spatial related properties:

$ $StardogBaseDir/bin/stardog-admin metadata get scalability_10K | grep spatial
| optimize.spatial                            | false                                                                            |
| spatial.distance.precision                  | 8                                                                                |
| spatial.enabled                             | true                                                                             |
| spatial.error.percentage                    | 0.025                                                                            |
| spatial.index.dirty                         | false                                                                            |
| spatial.index.version                       | 1                                                                                |
| spatial.precision                           | 11                                                                               |
| spatial.result.limit                        | 10000                                                                            |
| spatial.result.page_size                    | 100000                                                                           |
| spatial.use.jts                             | false                                                                            |

Database is spatially enabled but JTS is not!

At the same time looking at the Stardog log we have a number of warnings (skipped geometries!):

$ cat stardog.log | grep "" | grep "MULTIPOLYGON" | wc -l

This is the same number of MULTIPOLYGON geometries contained in the N-Triples file initially imported.

Is there something I am doing wrong? I need to enable JTS since the benchmark datasets include complex geometries and most of the other systems in the benchmark (GraphDB, RDF4J, Jena GeoSPARQL, etc) do not have an issue with the same datasets.

Thank you


I can't reproduce the behavior of spatial.use.jts being set to false. Would you be able to share all or some of your dataset so we can see what's happening specifically with the multipolygons?

Hi, I am attaching the N-Triples file.
scalability_10K.nt (3.6 MB)
I hope it helps.


Hi, Stephen

I found the problem which is not with Stardog but in one my scripts.
Unfortunately I had updated the "echo" message with the spatial.use.jts=true property value pair but skipped doing the same on the actual command.

Sorry for this false alarm.

I do not know if I need to close the post or if you think it is more usefull to be deleted.

Thank you