again thank you for the quick edit. as discussed I did run a test this morning with the new code in place and it still works fine with the tdb configuration in place. but once you switch to a tdb2 setup it will pass invocation of the spatialindexer (no transaction exception) but does not pick up spatial predicate pairs during indexing.
I have noticed that the transaction lock in tdb seems to crash out ungracefully (no error report) without releasing the lock . this requires me to manually remove the lock to allow access. On Tue, Sep 18, 2018 at 7:16 PM Marco Neumann <[email protected]> wrote: > Oh I see Adam, great. yes well in that case the order should not be too > tall. I will take a look at it in the morning. > > On Tue, Sep 18, 2018 at 5:40 PM ajs6f <[email protected]> wrote: > >> Marco-- >> >> I think I didn't express myself well. I'm not asking you to do any code >> updates of any kind-- I'm asking you to take a look at the updates _I've_ >> made available in that PR, try them out, and see if they fix your problem. >> Again, if that seems like a bit too tall an order, that's okay-- we'll find >> some other way to confirm this fix. I can set up a duplication of your >> problem, but it will take a few days for me to get around to it. >> >> ajs6f >> >> > On Sep 18, 2018, at 12:37 PM, Marco Neumann <[email protected]> >> wrote: >> > >> > I will take a look at it over the weekend, haven't done code updates to >> the >> > new jena repo. not sure if I can submit changes in my current setup, >> but >> > am happy to learn about it. >> > >> > On Tue, Sep 18, 2018 at 4:47 PM ajs6f <[email protected]> wrote: >> > >> >> Marco-- >> >> >> >> I've got a PR at https://github.com/apache/jena/pull/471. Until we >> hear >> >> from Andy, could you perhaps try cloning that PR/branch and trying the >> new >> >> code out? If that is not a reasonable piece of work for you, no >> problem, >> >> but it would help greatly in validating that we've found and fixed the >> >> problem. >> >> >> >> ajs6f >> >> >> >>> On Sep 18, 2018, at 4:51 AM, Marco Neumann <[email protected]> >> >> wrote: >> >>> >> >>> well spotted Adam, I think that nails it. I guess I was lucky with my >> >> setup >> >>> to avoid this glitch so far. Don't want to anticipates Andy's call >> here >> >> but >> >>> what's your plan? wrap the call into a transaction to fix it? If so >> I'd >> >>> like to see it as an option in the code to work with tdb2 access >> methods >> >> if >> >>> required in addition the current tdb support. >> >>> >> >>> >> >>> On Mon, Sep 17, 2018 at 3:26 PM ajs6f <[email protected]> wrote: >> >>> >> >>>> Okay, I think we've got it. Nice debugging, Markus! >> >>>> >> >>>> If you look at the line of the spatial indexer code that is throwing >> an >> >>>> exception: >> >>>> >> >>>> >> >>>> >> >> >> https://github.com/apache/jena/blob/master/jena-spatial/src/main/java/jena/spatialindexer.java#L110 >> >>>> >> >>>> indeed, it does not start a transaction against the dataset before >> >>>> starting to read quads to index them. Now, in TDB1 this isn't >> >> inherently a >> >>>> problem-- it's possible to work against a dataset without >> transactions. >> >>>> (Although it's generally not a good idea at all.) But IIRC, TDB2 >> >> requires >> >>>> transactions. If that's true (and Andy can verify that for us) then >> >> this is >> >>>> a bug and we can fix it in a straightforward way. >> >>>> >> >>>> Andy, can you confirm that diagnosis? If so, I'll open a ticket and >> >> write >> >>>> a PR to use a Txn method to fix this. >> >>>> >> >>>> ajs6f >> >>>> >> >>>>> On Sep 17, 2018, at 10:14 AM, Markus Neumann < >> [email protected] >> >>> >> >>>> wrote: >> >>>>> >> >>>>> It seems I made a mess with absolute and relative paths all >> together. >> >> So >> >>>> I created a minimal setup for testing: >> >>>>> (I include the file-contents at the bottom) >> >>>>> >> >>>>> $ export JENA_HOME=/srv/linked_data_store/apache-jena-3.8.0 >> >>>>> $ export PATH=$PATH:$JENA_HOME/bin >> >>>>> $ tdb2.tdbloader >> >>>> --desc=/srv/linked_data_store/fuseki-server/run/configuration/mm.ttl >> >>>> >> /srv/linked_data_store/rdf_python_connector/turtle_files/mm-loc-mini.ttl >> >>>> /srv/linked_data_store/rdf_python_connector/turtle_files/mm-rdf.ttl >> >>>>> 13:50:54 INFO loader :: Loader = LoaderPhased >> >>>>> 13:50:54 INFO loader :: Data: >> >>>> >> >> >> /srv/linked_data_store/rdf_python_connector/turtle_files/mm-loc-mini.ttl: >> >>>> 13 mm-loc-mini.ttl 0.06s (Avg: 232) >> >>>>> 13:50:54 INFO loader :: Data: >> >>>> /srv/linked_data_store/rdf_python_connector/turtle_files/mm-rdf.ttl: >> 50 >> >>>> mm-rdf.ttl 0.01s (Avg: 6,250) >> >>>>> 13:50:55 INFO loader :: Finish - index SPO >> >>>>> 13:50:55 INFO loader :: Start replay index SPO >> >>>>> 13:50:55 INFO loader :: Index set: SPO => SPO->POS, >> >>>> SPO->OSP >> >>>>> 13:50:55 INFO loader :: Index set: SPO => SPO->POS, >> >>>> SPO->OSP [63 items, 0.0 seconds] >> >>>>> 13:50:55 INFO loader :: Finish - index POS >> >>>>> 13:50:55 INFO loader :: Finish - index OSP >> >>>>> $ java -cp >> >>>> >> >> >> /srv/linked_data_store/fuseki-server/fuseki-server.jar:/srv/linked_data_store/apache-jena-3.8.0/lib/* >> >>>> jena.spatialindexer >> >>>> --desc=/srv/linked_data_store/fuseki-server/run/configuration/mm.ttl >> >>>>> SLF4J: Class path contains multiple SLF4J bindings. >> >>>>> SLF4J: Found binding in >> >>>> >> >> >> [jar:file:/srv/linked_data_store/fuseki-server/fuseki-server.jar!/org/slf4j/impl/StaticLoggerBinder.class] >> >>>>> SLF4J: Found binding in >> >>>> >> >> >> [jar:file:/srv/linked_data_store/apache-jena-3.8.0/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class] >> >>>>> SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an >> >>>> explanation. >> >>>>> SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] >> >>>>> org.apache.jena.dboe.transaction.txn.TransactionException: Not in a >> >>>> transaction >> >>>>> at >> >>>> >> >> >> org.apache.jena.dboe.transaction.txn.TransactionalComponentLifecycle.checkTxn(TransactionalComponentLifecycle.java:417) >> >>>>> at >> >>>> >> >> >> org.apache.jena.dboe.trans.bplustree.BPlusTree.getRootRead(BPlusTree.java:159) >> >>>>> at >> >>>> >> >> >> org.apache.jena.dboe.trans.bplustree.BPlusTree.iterator(BPlusTree.java:348) >> >>>>> at >> >>>> >> >> >> org.apache.jena.tdb2.store.tupletable.TupleIndexRecord.all(TupleIndexRecord.java:251) >> >>>>> at >> >>>> >> >> >> org.apache.jena.tdb2.store.tupletable.TupleTable.find(TupleTable.java:148) >> >>>>> at >> >>>> >> >> >> org.apache.jena.tdb2.store.nodetupletable.NodeTupleTableConcrete.find(NodeTupleTableConcrete.java:161) >> >>>>> at >> >>>> >> >> >> org.apache.jena.tdb2.store.nodetupletable.NodeTupleTableConcrete.find(NodeTupleTableConcrete.java:150) >> >>>>> at >> >>>> >> >> >> org.apache.jena.tdb2.store.nodetupletable.NodeTupleTableConcrete.findAsNodeIds(NodeTupleTableConcrete.java:141) >> >>>>> at >> >> org.apache.jena.tdb2.store.TripleTable.find(TripleTable.java:64) >> >>>>> at >> >>>> >> >> >> org.apache.jena.tdb2.store.DatasetGraphTDB.findInDftGraph(DatasetGraphTDB.java:104) >> >>>>> at >> >>>> >> >> >> org.apache.jena.sparql.core.DatasetGraphBaseFind.findAny(DatasetGraphBaseFind.java:72) >> >>>>> at >> >>>> >> >> >> org.apache.jena.sparql.core.DatasetGraphBaseFind.find(DatasetGraphBaseFind.java:50) >> >>>>> at >> >>>> >> >> >> org.apache.jena.sparql.core.DatasetGraphWrapper.find(DatasetGraphWrapper.java:152) >> >>>>> at >> >>>> >> >> >> org.apache.jena.sparql.core.DatasetGraphWrapper.find(DatasetGraphWrapper.java:152) >> >>>>> at jena.spatialindexer.exec(spatialindexer.java:110) >> >>>>> at jena.cmd.CmdMain.mainMethod(CmdMain.java:93) >> >>>>> at jena.cmd.CmdMain.mainRun(CmdMain.java:58) >> >>>>> at jena.cmd.CmdMain.mainRun(CmdMain.java:45) >> >>>>> at jena.spatialindexer.main(spatialindexer.java:53) >> >>>>> >> >>>>> I can get rid of the SLF4J warnings: >> >>>>> $ java -cp /srv/linked_data_store/fuseki-server/fuseki-server.jar >> >>>> jena.spatialindexer >> >>>> --desc=/srv/linked_data_store/fuseki-server/run/configuration/mm.ttl >> >>>>> org.apache.jena.dboe.transaction.txn.TransactionException: Not in a >> >>>> transaction >> >>>>> at >> >>>> >> >> >> org.apache.jena.dboe.transaction.txn.TransactionalComponentLifecycle.checkTxn(TransactionalComponentLifecycle.java:417) >> >>>>> at >> >>>> >> >> >> org.apache.jena.dboe.trans.bplustree.BPlusTree.getRootRead(BPlusTree.java:159) >> >>>>> at >> >>>> >> >> >> org.apache.jena.dboe.trans.bplustree.BPlusTree.iterator(BPlusTree.java:348) >> >>>>> at >> >>>> >> >> >> org.apache.jena.tdb2.store.tupletable.TupleIndexRecord.all(TupleIndexRecord.java:251) >> >>>>> at >> >>>> >> >> >> org.apache.jena.tdb2.store.tupletable.TupleTable.find(TupleTable.java:148) >> >>>>> at >> >>>> >> >> >> org.apache.jena.tdb2.store.nodetupletable.NodeTupleTableConcrete.find(NodeTupleTableConcrete.java:161) >> >>>>> at >> >>>> >> >> >> org.apache.jena.tdb2.store.nodetupletable.NodeTupleTableConcrete.find(NodeTupleTableConcrete.java:150) >> >>>>> at >> >>>> >> >> >> org.apache.jena.tdb2.store.nodetupletable.NodeTupleTableConcrete.findAsNodeIds(NodeTupleTableConcrete.java:141) >> >>>>> at >> >> org.apache.jena.tdb2.store.TripleTable.find(TripleTable.java:64) >> >>>>> at >> >>>> >> >> >> org.apache.jena.tdb2.store.DatasetGraphTDB.findInDftGraph(DatasetGraphTDB.java:104) >> >>>>> at >> >>>> >> >> >> org.apache.jena.sparql.core.DatasetGraphBaseFind.findAny(DatasetGraphBaseFind.java:72) >> >>>>> at >> >>>> >> >> >> org.apache.jena.sparql.core.DatasetGraphBaseFind.find(DatasetGraphBaseFind.java:50) >> >>>>> at >> >>>> >> >> >> org.apache.jena.sparql.core.DatasetGraphWrapper.find(DatasetGraphWrapper.java:152) >> >>>>> at >> >>>> >> >> >> org.apache.jena.sparql.core.DatasetGraphWrapper.find(DatasetGraphWrapper.java:152) >> >>>>> at jena.spatialindexer.exec(spatialindexer.java:110) >> >>>>> at jena.cmd.CmdMain.mainMethod(CmdMain.java:93) >> >>>>> at jena.cmd.CmdMain.mainRun(CmdMain.java:58) >> >>>>> at jena.cmd.CmdMain.mainRun(CmdMain.java:45) >> >>>>> at jena.spatialindexer.main(spatialindexer.java:53) >> >>>>> >> >>>>> There is no other java instance running at the time when I run those >> >>>> commands. >> >>>>> All paths are fully qualified and double checked. The destination >> >>>> directory and the Lucene directory were cleared just before. >> >>>>> >> >>>>> The server does start and serve the data without errors or warnings >> in >> >>>> the log, but spatial queries do not work. >> >>>>> >> >>>>> Does anyone see a reason for the TransactionException? >> >>>>> Thanks and best regards >> >>>>> Markus >> >>>>> >> >>>>> Attachments: >> >>>>> /srv/linked_data_store/rdf_python_connector/turtle_files/mm-rdf.ttl: >> >>>>> @prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> . >> >>>>> @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . >> >>>>> @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . >> >>>>> @prefix owl: <http://www.w3.org/2002/07/owl#> . >> >>>>> @prefix dc: <http://purl.org/dc/elements/1.1/> . >> >>>>> @prefix dcterms: <http://purl.org/dc/terms/> . >> >>>>> @prefix xsd: <http://www.w3.org/2001/XMLSchema#> >> >>>>> @prefix mm: <http://rdf.meteomatics.com/mm/> . >> >>>>> >> >>>>> <http://rdf.meteomatics.com/mm/> >> >>>>> dcterms:publisher <http://api.meteomatics.com/Imprint.html> ; >> >>>>> dcterms:title "Meteomatics RDF Vocabulary"@en . >> >>>>> >> >>>>> mm:location a rdf:Property ; >> >>>>> rdfs:isDefinedBy <http://rdf.meteomatics.com/mm/> ; >> >>>>> rdfs:label "location" ; >> >>>>> dcterms:description "Location of a measurement"@en . >> >>>>> >> >>>>> mm:elevation a rdf:Property ; >> >>>>> rdfs:isDefinedBy <http://rdf.meteomatics.com/mm/> ; >> >>>>> rdfs:label "elevation" ; >> >>>>> dcterms:description "Elevation of a location"@en . >> >>>>> >> >>>>> mm:validdate a rdf:Property ; >> >>>>> rdfs:isDefinedBy <http://rdf.meteomatics.com/mm/> ; >> >>>>> rdfs:label "validdate" ; >> >>>>> dcterms:description "Temporal information describing when a >> >>>> Measurement is/was valid"@en . >> >>>>> >> >>>>> mm:value a rdf:Property ; >> >>>>> rdfs:isDefinedBy <http://rdf.meteomatics.com/mm/> ; >> >>>>> rdfs:label "value" ; >> >>>>> dcterms:description "The (observed or predicted) value of a >> >>>> Measurement"@en . >> >>>>> >> >>>>> mm:parameter a rdf:Property ; >> >>>>> rdfs:isDefinedBy <http://rdf.meteomatics.com/mm/> ; >> >>>>> rdfs:label "parameter" ; >> >>>>> dcterms:description "what was measured"@en . >> >>>>> >> >>>>> mm:station_name a rdf:Property ; >> >>>>> rdfs:isDefinedBy <http://rdf.meteomatics.com/mm/> ; >> >>>>> rdfs:label "station_name" ; >> >>>>> dcterms:description "Name of a station"@en . >> >>>>> >> >>>>> mm:abbreviation a rdf:Property ; >> >>>>> rdfs:isDefinedBy <http://rdf.meteomatics.com/mm/> ; >> >>>>> rdfs:label "abbreviation" ; >> >>>>> dcterms:description "Abbreviation of a station name"@en . >> >>>>> >> >>>>> mm:didok_id a rdf:Property ; >> >>>>> rdfs:isDefinedBy <http://rdf.meteomatics.com/mm/> ; >> >>>>> rdfs:label "didok_id" ; >> >>>>> dcterms:description "didok id of a station"@en . >> >>>>> >> >>>>> mm:unit_symbol a rdf:Property ; >> >>>>> rdfs:isDefinedBy <http://rdf.meteomatics.com/mm/> ; >> >>>>> rdfs:label "unit symbol" ; >> >>>>> dcterms:description "unit symbol of a parameter"@en . >> >>>>> >> >>>>> mm:Measurement a rdf:Class ; >> >>>>> rdfs:isDefinedBy <http://rdf.meteomatics.com/mm/> ; >> >>>>> rdfs:label "Measurement" ; >> >>>>> dcterms:description "Measurement of a specific weather parameter at >> >>>> specific location at a specific date (both future or past)" . >> >>>>> >> >>>>> mm:Location a rdf:Class ; >> >>>>> rdfs:isDefinedBy <http://rdf.meteomatics.com/mm/> ; >> >>>>> rdfs:label "Location" ; >> >>>>> dcterms:description "A Point on the globe where we observe >> >>>> weather"@en . >> >>>>> >> >>>>> mm:Parameter a rdf:Class ; >> >>>>> rdfs:isDefinedBy <http://rdf.meteomatics.com/mm/> ; >> >>>>> rdfs:label "Parameter" ; >> >>>>> dcterms:description "A parameter describing an observable aspect of >> >>>> the weather"@en . >> >>>>> >> >>>>> >> >> >> /srv/linked_data_store/rdf_python_connector/turtle_files/mm-loc-mini.ttl >> >>>>> @prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> . >> >>>>> @prefix geosparql: <http://www.opengis.net/ont/geosparql#> . >> >>>>> @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . >> >>>>> @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . >> >>>>> @prefix owl: <http://www.w3.org/2002/07/owl#> . >> >>>>> @prefix dc: <http://purl.org/dc/elements/1.1/> . >> >>>>> @prefix dcterms: <http://purl.org/dc/terms/> . >> >>>>> @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . >> >>>>> @prefix mm: <http://rdf.meteomatics.com/mm/> . >> >>>>> @prefix mm-measurements: < >> http://rdf.meteomatics.com/mm/measurements/> >> >> . >> >>>>> @prefix mm-locations: <http://rdf.meteomatics.com/mm/locations/> . >> >>>>> >> >>>>> >> >>>>> mm-locations:8500015 a mm:Location ; >> >>>>> a geosparql:Geometry ; >> >>>>> mm:didok_id 8500015 ; >> >>>>> geo:lat 47.54259 ; >> >>>>> geo:long 7.61574 ; >> >>>>> mm:elevation 273 . >> >>>>> >> >>>>> >> >>>>> mm-locations:8504238 a mm:Location ; >> >>>>> a geosparql:Geometry ; >> >>>>> geosparql:asWKT "POINT(6.86466645231 >> >>>> 47.0840196485)"^^geosparql:wktLiteral ; >> >>>>> mm:didok_id 8504238 ; >> >>>>> geo:lat 47.08402 ; >> >>>>> geo:long 6.86467 ; >> >>>>> mm:elevation 1086 . >> >>>>> >> >>>>> /srv/linked_data_store/fuseki-server/run/configuration/mm.ttl >> >>>>> @prefix : <http://base/#> . >> >>>>> @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . >> >>>>> @prefix tdb2: <http://jena.apache.org/2016/tdb#> . >> >>>>> @prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> . >> >>>>> @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . >> >>>>> @prefix fuseki: <http://jena.apache.org/fuseki#> . >> >>>>> @prefix spatial: <http://jena.apache.org/spatial#> . >> >>>>> @prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> . >> >>>>> @prefix geosparql: <http://www.opengis.net/ont/geosparql#> . >> >>>>> # Spatial >> >>>>> #[] ja:loadClass "org.apache.jena.query.spatial.SpatialQuery" . >> >>>>> #spatial:SpatialtDataset rdfs:subClassOf ja:RDFDataset . >> >>>>> #spatial:SpatialIndexLucene rdfs:subClassOf spatial:SpatialIndex . >> >>>>> >> >>>>> :service_tdb_all a fuseki:Service ; >> >>>>> rdfs:label "TDB2 mm" ; >> >>>>> fuseki:dataset :spatial_dataset ; >> >>>>> fuseki:name "mm" ; >> >>>>> fuseki:serviceQuery "query" , "sparql" ; >> >>>>> fuseki:serviceReadGraphStore "get" ; >> >>>>> fuseki:serviceReadWriteGraphStore >> >>>>> "data" ; >> >>>>> fuseki:serviceUpdate "update" ; >> >>>>> fuseki:serviceUpload "upload" . >> >>>>> >> >>>>> :spatial_dataset a spatial:SpatialDataset ; >> >>>>> spatial:dataset :tdb_dataset_readwrite ; >> >>>>> spatial:index <#indexLucene> ; >> >>>>> . >> >>>>> >> >>>>> <#indexLucene> a spatial:SpatialIndexLucene ; >> >>>>> spatial:directory <file:Lucene> ; >> >>>>> #spatial:directory "mem" ; >> >>>>> spatial:definition <#definition> ; >> >>>>> . >> >>>>> >> >>>>> <#definition> a spatial:EntityDefinition ; >> >>>>> spatial:entityField "uri" ; >> >>>>> spatial:geoField "geo" ; >> >>>>> # custom geo predicates for 1) Latitude/Longitude Format >> >>>>> spatial:hasSpatialPredicatePairs ( >> >>>>> [ spatial:latitude geo:lat ; spatial:longitude geo:long ] >> >>>>> ) ; >> >>>>> # custom geo predicates for 2) Well Known Text (WKT) Literal >> >>>>> spatial:hasWKTPredicates (geosparql:asWKT) ; >> >>>>> #spatial:spatialContextFactory >> >>>>> # "com.spatial4j.core.context.jts.JtsSpatialContextFactory" >> >>>>> # >> "org.locationtech.spatial4j.context.jts.JtsSpatialContextFactory" >> >>>>> . >> >>>>> >> >>>>> :tdb_dataset_readwrite >> >>>>> a tdb2:DatasetTDB2 ; >> >>>>> tdb2:location >> >>>> "/srv/linked_data_store/fuseki-server/run/databases/mm" . >> >>>>> >> >>>>> >> >>>>>> Am 17.09.2018 um 15:15 schrieb ajs6f <[email protected]>: >> >>>>>> >> >>>>>> I think you might have misunderstood the use of $JENA_HOME, or >> perhaps >> >>>> the Java classpath. $JENA_HOME, which should generally be an absolute >> >>>> filepath, allows the Jena scripts to find their libraries at runtime. >> >>>> Internally, the scripts use $JENA_HOME to set up the classpaths with >> >> which >> >>>> to start running Java code. But in this case, you're not using the >> >> scripts. >> >>>> You're calling a Java class directly, which means you have to give it >> >> all >> >>>> the libraries directly, using the classpath flag directly. For >> example, >> >>>> your second attempt: >> >>>>>> >> >>>>>> $ java -cp apache-jena-3.8.0/lib/* jena.spatialindexer >> >>>> --desc=fuseki-server/run/configuration/mm.ttl >> >>>>>> Error: Could not find or load main class >> >>>> apache-jena-3.8.0.lib.commons-cli-1.4.jar >> >>>>>> >> >>>>>> may have failed because whatever directory you are in probably >> doesn't >> >>>> happen to have a Jena distribution in it called "apache-jena-3.8.0". >> >>>> Perhaps try: >> >>>>>> >> >>>>>> java -cp $JENA_HOME/lib/* jena.spatialindexer >> >>>> --desc=fuseki-server/run/configuration/mm.ttl >> >>>>>> >> >>>>>> Your first example looks like it might be misusing the -cp flag >> [1]. >> >>>> You probably don't want the *.jar, just *, like >> >>>>>> >> >>>>>> java -cp lib/* jena.spatialindexer >> >>>> --desc=../fuseki-server/run/configuration/mm.ttl >> >>>>>> >> >>>>>> especially if you happen to be using Windows. [2] That might not be >> >> the >> >>>> entire story, but you can at least try those invocations and see if >> you >> >> get >> >>>> anything different/better. >> >>>>>> >> >>>>>> ajs6f >> >>>>>> >> >>>>>> [1] >> >>>> >> >> >> https://docs.oracle.com/javase/8/docs/technotes/tools/windows/classpath.html#A1100762 >> >>>> < >> >>>> >> >> >> https://docs.oracle.com/javase/8/docs/technotes/tools/windows/classpath.html#A1100762 >> >>>>> >> >>>>>> [2] >> >>>> >> >> >> https://stackoverflow.com/questions/219585/including-all-the-jars-in-a-directory-within-the-java-classpath >> >>>> < >> >>>> >> >> >> https://stackoverflow.com/questions/219585/including-all-the-jars-in-a-directory-within-the-java-classpath >> >>>>> >> >>>>>> >> >>>>>> >> >>>>>>> On Sep 17, 2018, at 7:07 AM, Markus Neumann < >> >> [email protected] >> >>>> <mailto:[email protected]>> wrote: >> >>>>>>> >> >>>>>>> Ok, that's exactly what I did here: >> >>>>>>> $ java -cp lib/*.jar jena.spatialindexer >> >>>> --desc=../fuseki-server/run/configuration/mm.ttl >> >>>>>>> Error: Could not find or load main class lib.commons-cli-1.4.jar >> >>>>>>> >> >>>>>>> Or from outside JENA_HOME: >> >>>>>>> $ java -cp apache-jena-3.8.0/lib/* jena.spatialindexer >> >>>> --desc=fuseki-server/run/configuration/mm.ttl >> >>>>>>> Error: Could not find or load main class >> >>>> apache-jena-3.8.0.lib.commons-cli-1.4.jar >> >>>>>>> >> >>>>>>> Or did I missunderstand something? >> >>>>>>> >> >>>>>>>> Am 17.09.2018 um 12:02 schrieb Marco Neumann < >> >> [email protected] >> >>>>> : >> >>>>>>>> >> >>>>>>>> don't worry it's a common problem and frequent source of >> confusion >> >>>> not only >> >>>>>>>> with jena but java projects. try to simply inlcude all the jars. >> >>>>>>>> >> >>>>>>>> I presume you run this on a linux box with OpenJDK 8. correct? >> >>>>>>>> >> >>>>>>>> now once you have set up jena just add the following >> >>>>>>>> {replace_with_your_path}/apache-jena-3.8.0/lib/* >> >>>>>>>> >> >>>>>>>> >> >>>>>>>> >> >>>>>>>> >> >>>>>>>> On Mon, Sep 17, 2018 at 10:56 AM Markus Neumann < >> >>>> [email protected] <mailto:[email protected]> <mailto: >> >>>> [email protected] <mailto:[email protected]>>> >> >>>>>>>> wrote: >> >>>>>>>> >> >>>>>>>>> This is embarrassing but I don't get it. >> >>>>>>>>> >> >>>>>>>>> I've configured $JENA_HOME and adjusted the PATH. >> >>>>>>>>> >> >>>>>>>>> Now what classpath should I include when invoking the indexer? >> >>>>>>>>> What I've tried so far: >> >>>>>>>>> >> >>>>>>>>> $ cd $JENA_HOME >> >>>>>>>>> $ java -cp jena-spatial-3.8.0.jar jena.spatialindexer >> >>>>>>>>> --desc=../fuseki-server/run/configuration/mm.ttl >> >>>>>>>>> Error: Could not find or load main class jena.spatialindexer >> >>>>>>>>> $ java -cp lib/*.jar jena.spatialindexer >> >>>>>>>>> --desc=../fuseki-server/run/configuration/mm.ttl >> >>>>>>>>> Error: Could not find or load main class lib.commons-cli-1.4.jar >> >>>>>>>>> >> >>>>>>>>> Thanks for your patience >> >>>>>>>>> >> >>>>>>>>>> Am 17.09.2018 um 11:38 schrieb Marco Neumann < >> >>>> [email protected] <mailto:[email protected]>>: >> >>>>>>>>>> >> >>>>>>>>>> yes correct, this looks good. now include the classpath during >> >>>> invocation >> >>>>>>>>>> of the spatialindexer >> >>>>>>>>>> >> >>>>>>>>>> in addition it's always a good idea to properly configure jena >> >>>> along your >> >>>>>>>>>> java runtime environment settings to avoid jdk / lib conflicts >> >>>> during >> >>>>>>>>>> execution. >> >>>>>>>>>> >> >>>>>>>>>> https://jena.apache.org/documentation/tools/index.html < >> >>>> https://jena.apache.org/documentation/tools/index.html> < >> >>>>>>>>> https://jena.apache.org/documentation/tools/index.html < >> >>>> https://jena.apache.org/documentation/tools/index.html> < >> >>>> https://jena.apache.org/documentation/tools/index.html < >> >>>> https://jena.apache.org/documentation/tools/index.html>>> >> >>>>>>>>>> >> >>>>>>>>>> >> >>>>>>>>>> >> >>>>>>>>>> On Mon, Sep 17, 2018 at 10:28 AM Markus Neumann < >> >>>>>>>>> [email protected] <mailto:[email protected]> >> >> <mailto: >> >>>> [email protected] <mailto:[email protected]>> <mailto: >> >>>> [email protected] <mailto:[email protected]> <mailto: >> >>>> [email protected] <mailto:[email protected]>>>> >> >>>>>>>>>> wrote: >> >>>>>>>>>> >> >>>>>>>>>>> 1.: what do you mean by indexer? >> >>>>>>>>>>> Probably my biggest problem is, that I have no clue how to >> find >> >>>> out, >> >>>>>>>>> where >> >>>>>>>>>>> the jena.spatialindexer could be located except for asking >> here. >> >>>>>>>>>>> >> >>>>>>>>>>> Here is the content of the apache jena I downloaded: >> >>>>>>>>>>> $ ls -lh ../apache-jena-3.8.0/lib >> >>>>>>>>>>> total 17M >> >>>>>>>>>>> -rw-r--r-- 1 process process 162K Oct 26 2017 >> collection-0.7.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 53K Oct 26 2017 >> >> commons-cli-1.4.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 328K Mar 5 2018 >> >>>> commons-codec-1.11.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 576K Jun 25 09:59 >> >>>> commons-compress-1.17.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 41K Mar 5 2018 >> >> commons-csv-1.5.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 210K Mar 5 2018 >> commons-io-2.6.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 425K Oct 26 2017 >> >>>> commons-lang3-3.4.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 749K Jun 25 10:01 >> >> httpclient-4.5.5.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 158K Jun 25 10:01 >> >>>>>>>>> httpclient-cache-4.5.5.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 318K Jun 25 10:01 >> httpcore-4.4.9.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 65K Oct 26 2017 >> >>>>>>>>>>> jackson-annotations-2.9.0.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 315K Jun 25 10:01 >> >>>> jackson-core-2.9.5.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 1.3M Jun 25 10:01 >> >>>>>>>>> jackson-databind-2.9.5.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 17K Oct 26 2017 >> >>>> jcl-over-slf4j-1.7.25.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 2.9M Jun 25 11:03 >> jena-arq-3.8.0.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 211K Jun 25 11:01 >> >> jena-base-3.8.0.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 259K Jun 25 11:07 >> >> jena-cmds-3.8.0.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 1.7M Jun 25 11:02 >> >> jena-core-3.8.0.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 135K Jun 25 11:05 >> >>>> jena-dboe-base-3.8.0.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 21K Jun 25 11:05 >> >>>> jena-dboe-index-3.8.0.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 74K Jun 25 11:05 >> >>>>>>>>>>> jena-dboe-transaction-3.8.0.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 95K Jun 25 11:06 >> >>>>>>>>>>> jena-dboe-trans-data-3.8.0.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 135K Jun 25 11:01 >> jena-iri-3.8.0.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 49K Jun 25 11:04 >> >>>>>>>>> jena-rdfconnection-3.8.0.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 2.8M Jun 25 11:01 >> >>>>>>>>> jena-shaded-guava-3.8.0.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 264K Jun 25 11:06 >> >> jena-tdb2-3.8.0.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 512K Jun 25 11:04 >> jena-tdb-3.8.0.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 1.6M Jun 25 10:01 >> >>>> jsonld-java-0.12.0.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 232K Mar 5 2018 >> >> libthrift-0.10.0.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 479K Oct 26 2017 >> log4j-1.2.17.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 41K Oct 26 2017 >> >> slf4j-api-1.7.25.jar >> >>>>>>>>>>> -rw-r--r-- 1 process process 12K Oct 26 2017 >> >>>> slf4j-log4j12-1.7.25.jar >> >>>>>>>>>>> >> >>>>>>>>>>> 2.: Turns out, I don't need the jts. after commenting out the >> >>>> affected >> >>>>>>>>>>> lines, the server still runs fine. (But still without spatial >> >>>> index) >> >>>>>>>>>>> >> >>>>>>>>>>> Best Markus >> >>>>>>>>>>> >> >>>>>>>>>>>> Am 17.09.2018 um 11:14 schrieb Marco Neumann < >> >>>> [email protected] <mailto:[email protected]> <mailto: >> >>>> [email protected] <mailto:[email protected]>> >> >>>>>>>>>> : >> >>>>>>>>>>>> >> >>>>>>>>>>>> Ok let's take a look at this. >> >>>>>>>>>>>> >> >>>>>>>>>>>> 1. please include in the indexer in the classpath. It's part >> of >> >>>> the >> >>>>>>>>>>> current >> >>>>>>>>>>>> jena distribution. >> >>>>>>>>>>>> >> >>>>>>>>>>>> 2. do you need jts? it's a package that allows you to index >> >> multi >> >>>> point >> >>>>>>>>>>>> geometries. here a sample query would be helpful. If single >> >> point >> >>>>>>>>>>>> geometries are indexed and used in conjunction with MBR range >> >>>> queries. >> >>>>>>>>>>>> there is no need for jts. >> >>>>>>>>>>>> >> >>>>>>>>>>>> >> >>>>>>>>>>>> On Mon, Sep 17, 2018 at 9:14 AM Markus Neumann < >> >>>>>>>>> [email protected] <mailto:[email protected]> >> >> <mailto: >> >>>> [email protected] <mailto:[email protected]>> >> >>>>>>>>>>> <mailto:[email protected] <mailto: >> >> [email protected]> >> >>>> <mailto:[email protected] <mailto:[email protected]>> >> >>>> <mailto:[email protected] <mailto:[email protected]> >> >>>> <mailto:[email protected] <mailto:[email protected] >> >>>>> >> >>>>>>>>>>>> wrote: >> >>>>>>>>>>>> >> >>>>>>>>>>>>> Hi, >> >>>>>>>>>>>>> (sorry for the long post) >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> I've been struggling with the spatial index for a while now. >> >>>>>>>>>>>>> I've read >> >>>>>>>>>>> >> https://jena.apache.org/documentation/query/spatial-query.html < >> >>>> https://jena.apache.org/documentation/query/spatial-query.html> < >> >>>> https://jena.apache.org/documentation/query/spatial-query.html < >> >>>> https://jena.apache.org/documentation/query/spatial-query.html>> < >> >>>>>>>>> https://jena.apache.org/documentation/query/spatial-query.html >> < >> >>>> https://jena.apache.org/documentation/query/spatial-query.html> < >> >>>> https://jena.apache.org/documentation/query/spatial-query.html < >> >>>> https://jena.apache.org/documentation/query/spatial-query.html>>> < >> >>>>>>>>>>> >> https://jena.apache.org/documentation/query/spatial-query.html < >> >>>> https://jena.apache.org/documentation/query/spatial-query.html> < >> >>>> https://jena.apache.org/documentation/query/spatial-query.html < >> >>>> https://jena.apache.org/documentation/query/spatial-query.html>> < >> >>>>>>>>> https://jena.apache.org/documentation/query/spatial-query.html >> < >> >>>> https://jena.apache.org/documentation/query/spatial-query.html> < >> >>>> https://jena.apache.org/documentation/query/spatial-query.html < >> >>>> https://jena.apache.org/documentation/query/spatial-query.html>>>> < >> >>>>>>>>>>>>> >> https://jena.apache.org/documentation/query/spatial-query.html >> >> < >> >>>> https://jena.apache.org/documentation/query/spatial-query.html> < >> >>>> https://jena.apache.org/documentation/query/spatial-query.html < >> >>>> https://jena.apache.org/documentation/query/spatial-query.html>> < >> >>>>>>>>> https://jena.apache.org/documentation/query/spatial-query.html >> < >> >>>> https://jena.apache.org/documentation/query/spatial-query.html> < >> >>>> https://jena.apache.org/documentation/query/spatial-query.html < >> >>>> https://jena.apache.org/documentation/query/spatial-query.html>>> < >> >>>>>>>>>>> >> https://jena.apache.org/documentation/query/spatial-query.html < >> >>>> https://jena.apache.org/documentation/query/spatial-query.html> < >> >>>> https://jena.apache.org/documentation/query/spatial-query.html < >> >>>> https://jena.apache.org/documentation/query/spatial-query.html>> < >> >>>>>>>>> https://jena.apache.org/documentation/query/spatial-query.html >> < >> >>>> https://jena.apache.org/documentation/query/spatial-query.html> < >> >>>> https://jena.apache.org/documentation/query/spatial-query.html < >> >>>> https://jena.apache.org/documentation/query/spatial-query.html>>>>> >> and >> >>>>>>>>>>>>> skipped through about every spatial related thread here on >> the >> >>>> list. >> >>>>>>>>>>>>> I managed to get an in-memory version up and running at some >> >>>> point >> >>>>>>>>>>>>> following this >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> >> >>>>>>>>>>> >> >>>>>>>>> >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>> < >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>>> < >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>> < >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>>>> >> >>>>>>>>> < >> >>>>>>>>> >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>> < >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>>> < >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>> < >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>>>> >> >>>>>>>>>> >> >>>>>>>>>>> < >> >>>>>>>>>>> >> >>>>>>>>> >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>> < >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>>> < >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>> < >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>>>> >> >>>>>>>>> < >> >>>>>>>>> >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>> < >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>>> < >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>> < >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>>>> >> >>>>>>>>>> >> >>>>>>>>>>>> >> >>>>>>>>>>>>> < >> >>>>>>>>>>>>> >> >>>>>>>>>>> >> >>>>>>>>> >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>> < >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>>> < >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>> < >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>>>> >> >>>>>>>>> < >> >>>>>>>>> >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>> < >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>>> < >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>> < >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>>>> >> >>>>>>>>>> >> >>>>>>>>>>> < >> >>>>>>>>>>> >> >>>>>>>>> >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>> < >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>>> < >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>> < >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>>>> >> >>>>>>>>> < >> >>>>>>>>> >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>> < >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>>> < >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>> < >> >>>> >> >> >> https://stackoverflow.com/questions/45814956/building-geospatial-index-when-working-with-jena-fuseki/52099066#52099066 >> >>>>>> >> >>>>>>>>>> >> >>>>>>>>>>>> >> >>>>>>>>>>>>>> >> >>>>>>>>>>>>> and this >> >>>>>>>>>>>>> >> >>>> https://ceyxstudios.com/2017/11/25/rdf-datenbank-mit-geo-funktionen/ >> < >> >>>> https://ceyxstudios.com/2017/11/25/rdf-datenbank-mit-geo-funktionen/> >> < >> >>>> https://ceyxstudios.com/2017/11/25/rdf-datenbank-mit-geo-funktionen/ >> < >> >>>> https://ceyxstudios.com/2017/11/25/rdf-datenbank-mit-geo-funktionen/ >> >> >> >>>>>>>>> < >> >>>> https://ceyxstudios.com/2017/11/25/rdf-datenbank-mit-geo-funktionen/> >> < >> >>>>>>>>>>> >> >>>> https://ceyxstudios.com/2017/11/25/rdf-datenbank-mit-geo-funktionen/> >> < >> >>>>>>>>>>>>> >> >>>> https://ceyxstudios.com/2017/11/25/rdf-datenbank-mit-geo-funktionen/ >> > >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> But that was on a small dataset that I uploaded via the >> >>>> web-interface >> >>>>>>>>> of >> >>>>>>>>>>>>> Fuseki. >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> Now the story is a bit different. I'm building the database >> >> using >> >>>>>>>>>>>>> tdbloader2 and would like to create the spatial index >> upfront. >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> java -cp jena-spatial.jar jena.spatialindexer >> >>>> --desc=assembler_file >> >>>>>>>>>>>>> I could not figure out, how to get this line to work. I have >> >> the >> >>>>>>>>>>> following >> >>>>>>>>>>>>> possible scenarios: >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> 1. I download the jena-spatial-3.8.0.jar and specify that in >> >> the >> >>>>>>>>>>> classpath: >> >>>>>>>>>>>>> $ java -cp jena-spatial-3.8.0.jar jena.spatialindexer >> >>>>>>>>>>>>> --desc=../fuseki-server/run/configuration/mm.ttl >> >>>>>>>>>>>>> Error: Could not find or load main class jena.spatialindexer >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> 2. I use the fuseki-server jar: >> >>>>>>>>>>>>> $ java -cp fuseki-server.jar jena.spatialindexer >> >>>>>>>>>>>>> --desc=./run/configuration/mm.ttl >> >>>>>>>>>>>>> WARN Custom SpatialContextFactory lib is not ready in >> >>>>>>>>>>>>> >> classpath:com/vividsolutions/jts/geom/CoordinateSequenceFactory >> >>>>>>>>>>>>> org.apache.jena.dboe.transaction.txn.TransactionException: >> Not >> >>>> in a >> >>>>>>>>>>>>> transaction >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> I managed to eliminate the warning about jts by including >> that >> >>>> in the >> >>>>>>>>>>>>> classpath, but the error remains the same (with full trace): >> >>>>>>>>>>>>> java -cp fuseki-server.jar:jts-1.13.jar jena.spatialindexer >> >>>>>>>>>>>>> --desc=./run/configuration/mm.ttl >> >>>>>>>>>>>>> org.apache.jena.dboe.transaction.txn.TransactionException: >> Not >> >>>> in a >> >>>>>>>>>>>>> transaction >> >>>>>>>>>>>>> at >> >>>>>>>>>>>>> >> >>>>>>>>>>> >> >>>>>>>>> >> >>>> >> >> >> org.apache.jena.dboe.transaction.txn.TransactionalComponentLifecycle.checkTxn(TransactionalComponentLifecycle.java:417) >> >>>>>>>>>>>>> at >> >>>>>>>>>>>>> >> >>>>>>>>>>> >> >>>>>>>>> >> >>>> >> >> >> org.apache.jena.dboe.trans.bplustree.BPlusTree.getRootRead(BPlusTree.java:159) >> >>>>>>>>>>>>> at >> >>>>>>>>>>>>> >> >>>>>>>>>>> >> >>>>>>>>> >> >>>> >> >> >> org.apache.jena.dboe.trans.bplustree.BPlusTree.iterator(BPlusTree.java:348) >> >>>>>>>>>>>>> at >> >>>>>>>>>>>>> >> >>>>>>>>>>> >> >>>>>>>>> >> >>>> >> >> >> org.apache.jena.tdb2.store.tupletable.TupleIndexRecord.all(TupleIndexRecord.java:251) >> >>>>>>>>>>>>> at >> >>>>>>>>>>>>> >> >>>>>>>>>>> >> >>>>>>>>> >> >>>> >> >> >> org.apache.jena.tdb2.store.tupletable.TupleTable.find(TupleTable.java:148) >> >>>>>>>>>>>>> at >> >>>>>>>>>>>>> >> >>>>>>>>>>> >> >>>>>>>>> >> >>>> >> >> >> org.apache.jena.tdb2.store.nodetupletable.NodeTupleTableConcrete.find(NodeTupleTableConcrete.java:161) >> >>>>>>>>>>>>> at >> >>>>>>>>>>>>> >> >>>>>>>>>>> >> >>>>>>>>> >> >>>> >> >> >> org.apache.jena.tdb2.store.nodetupletable.NodeTupleTableConcrete.find(NodeTupleTableConcrete.java:150) >> >>>>>>>>>>>>> at >> >>>>>>>>>>>>> >> >>>>>>>>>>> >> >>>>>>>>> >> >>>> >> >> >> org.apache.jena.tdb2.store.nodetupletable.NodeTupleTableConcrete.findAsNodeIds(NodeTupleTableConcrete.java:141) >> >>>>>>>>>>>>> at >> >>>>>>>>>>> >> org.apache.jena.tdb2.store.TripleTable.find(TripleTable.java:64) >> >>>>>>>>>>>>> at >> >>>>>>>>>>>>> >> >>>>>>>>>>> >> >>>>>>>>> >> >>>> >> >> >> org.apache.jena.tdb2.store.DatasetGraphTDB.findInDftGraph(DatasetGraphTDB.java:104) >> >>>>>>>>>>>>> at >> >>>>>>>>>>>>> >> >>>>>>>>>>> >> >>>>>>>>> >> >>>> >> >> >> org.apache.jena.sparql.core.DatasetGraphBaseFind.findAny(DatasetGraphBaseFind.java:72) >> >>>>>>>>>>>>> at >> >>>>>>>>>>>>> >> >>>>>>>>>>> >> >>>>>>>>> >> >>>> >> >> >> org.apache.jena.sparql.core.DatasetGraphBaseFind.find(DatasetGraphBaseFind.java:50) >> >>>>>>>>>>>>> at >> >>>>>>>>>>>>> >> >>>>>>>>>>> >> >>>>>>>>> >> >>>> >> >> >> org.apache.jena.sparql.core.DatasetGraphWrapper.find(DatasetGraphWrapper.java:152) >> >>>>>>>>>>>>> at >> >>>>>>>>>>>>> >> >>>>>>>>>>> >> >>>>>>>>> >> >>>> >> >> >> org.apache.jena.sparql.core.DatasetGraphWrapper.find(DatasetGraphWrapper.java:152) >> >>>>>>>>>>>>> at jena.spatialindexer.exec(spatialindexer.java:110) >> >>>>>>>>>>>>> at jena.cmd.CmdMain.mainMethod(CmdMain.java:93) >> >>>>>>>>>>>>> at jena.cmd.CmdMain.mainRun(CmdMain.java:58) >> >>>>>>>>>>>>> at jena.cmd.CmdMain.mainRun(CmdMain.java:45) >> >>>>>>>>>>>>> at jena.spatialindexer.main(spatialindexer.java:53) >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> My configuration is the following: >> >>>>>>>>>>>>> @prefix : <http://base/#> . >> >>>>>>>>>>>>> @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> >> . >> >>>>>>>>>>>>> @prefix tdb2: <http://jena.apache.org/2016/tdb#> . >> >>>>>>>>>>>>> @prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> >> . >> >>>>>>>>>>>>> @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . >> >>>>>>>>>>>>> @prefix fuseki: <http://jena.apache.org/fuseki#> . >> >>>>>>>>>>>>> @prefix spatial: <http://jena.apache.org/spatial#> . >> >>>>>>>>>>>>> @prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> . >> >>>>>>>>>>>>> @prefix geosparql: <http://www.opengis.net/ont/geosparql#> >> . >> >>>>>>>>>>>>> # Spatial >> >>>>>>>>>>>>> [] ja:loadClass >> "org.apache.jena.query.spatial.SpatialQuery" . >> >>>>>>>>>>>>> spatial:SpatialtDataset rdfs:subClassOf ja:RDFDataset . >> >>>>>>>>>>>>> spatial:SpatialIndexLucene rdfs:subClassOf >> >> spatial:SpatialIndex . >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> :service_tdb_all a fuseki:Service ; >> >>>>>>>>>>>>> rdfs:label "TDB2 mm" ; >> >>>>>>>>>>>>> fuseki:dataset :spatial_dataset ; >> >>>>>>>>>>>>> fuseki:name "mm" ; >> >>>>>>>>>>>>> fuseki:serviceQuery "query" , "sparql" ; >> >>>>>>>>>>>>> fuseki:serviceReadGraphStore "get" ; >> >>>>>>>>>>>>> fuseki:serviceReadWriteGraphStore >> >>>>>>>>>>>>> "data" ; >> >>>>>>>>>>>>> fuseki:serviceUpdate "update" ; >> >>>>>>>>>>>>> fuseki:serviceUpload "upload" . >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> :spatial_dataset a spatial:SpatialDataset ; >> >>>>>>>>>>>>> spatial:dataset :tdb_dataset_readwrite ; >> >>>>>>>>>>>>> spatial:index <#indexLucene> ; >> >>>>>>>>>>>>> . >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> <#indexLucene> a spatial:SpatialIndexLucene ; >> >>>>>>>>>>>>> spatial:directory <file:Lucene> ; >> >>>>>>>>>>>>> #spatial:directory "mem" ; >> >>>>>>>>>>>>> spatial:definition <#definition> ; >> >>>>>>>>>>>>> . >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> <#definition> a spatial:EntityDefinition ; >> >>>>>>>>>>>>> spatial:entityField "uri" ; >> >>>>>>>>>>>>> spatial:geoField "geo" ; >> >>>>>>>>>>>>> # custom geo predicates for 1) Latitude/Longitude Format >> >>>>>>>>>>>>> spatial:hasSpatialPredicatePairs ( >> >>>>>>>>>>>>> [ spatial:latitude geo:lat ; spatial:longitude geo:long ] >> >>>>>>>>>>>>> ) ; >> >>>>>>>>>>>>> # custom geo predicates for 2) Well Known Text (WKT) Literal >> >>>>>>>>>>>>> spatial:hasWKTPredicates (geosparql:asWKT) ; >> >>>>>>>>>>>>> # custom SpatialContextFactory for 2) Well Known Text (WKT) >> >>>> Literal >> >>>>>>>>>>>>> spatial:spatialContextFactory >> >>>>>>>>>>>>> # >> >>>> "com.spatial4j.core.context.jts.JtsSpatialContextFactory" >> >>>>>>>>>>>>> >> >>>>>>>>> >> "org.locationtech.spatial4j.context.jts.JtsSpatialContextFactory" >> >>>>>>>>>>>>> . >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> :tdb_dataset_readwrite >> >>>>>>>>>>>>> a tdb2:DatasetTDB2 ; >> >>>>>>>>>>>>> tdb2:location >> >>>>>>>>>>>>> "/srv/linked_data_store/fuseki-server/run/databases/mm" . >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> And I've changed the fuseki script to include the jts jar: >> >>>>>>>>>>>>> FUSEKI_CLASSES=$FUSEKI_HOME/jts-1.13.jar >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> I see no errors or warnings in the server log, when starting >> >>>> with that >> >>>>>>>>>>>>> configuration, the Lucene folder is created and populated >> with >> >>>>>>>>>>> something: >> >>>>>>>>>>>>> $ ll run/configuration/Lucene/ >> >>>>>>>>>>>>> total 4 >> >>>>>>>>>>>>> -rw-rw-r-- 1 process process 71 Sep 14 09:28 segments_1 >> >>>>>>>>>>>>> -rw-rw-r-- 1 process process 0 Sep 14 09:28 write.lock >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> But any spatial query does not return any results. >> >>>>>>>>>>>>> Any help on how to tackle this would be highly appreciated. >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> Best >> >>>>>>>>>>>>> Markus Neumann >> >>>>>>>>>>>>> >> >>>>>>>>>>>>> >> >>>>>>>>>>>> >> >>>>>>>>>>>> -- >> >>>>>>>>>>>> >> >>>>>>>>>>>> >> >>>>>>>>>>>> --- >> >>>>>>>>>>>> Marco Neumann >> >>>>>>>>>>>> KONA >> >>>>>>>>>>> >> >>>>>>>>>>> >> >>>>>>>>>> >> >>>>>>>>>> -- >> >>>>>>>>>> >> >>>>>>>>>> >> >>>>>>>>>> --- >> >>>>>>>>>> Marco Neumann >> >>>>>>>>>> KONA >> >>>>>>>>> >> >>>>>>>>> >> >>>>>>>> >> >>>>>>>> -- >> >>>>>>>> >> >>>>>>>> >> >>>>>>>> --- >> >>>>>>>> Marco Neumann >> >>>>>>>> KONA >> >>>>> >> >>>> >> >>>> >> >>>> >> >>> >> >>> -- >> >>> >> >>> >> >>> --- >> >>> Marco Neumann >> >>> KONA >> >> >> >> >> >> >> > >> > -- >> > >> > >> > --- >> > Marco Neumann >> > KONA >> >> >> > > -- > > > --- > Marco Neumann > KONA > > -- --- Marco Neumann KONA
