indeed Andy, I got confused with the naming here. same in the code
actually. it might be a good idea to come up with a new name for TDB2 to
reduce scope for confusion.


On Wed, Sep 19, 2018 at 1:47 PM Andy Seaborne <[email protected]> wrote:

>
>
> On 19/09/18 11:24, Marco Neumann wrote:
> > On Wed, Sep 19, 2018 at 11:04 AM Andy Seaborne <[email protected]> wrote:
> >
> >>
> >>
> >> On 17/09/18 15:26, ajs6f 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?
> >>
> >> Yes - TDB2 only works transactionally.
> >>
> >>
> > Andy--
> >
> > I am just looking at the file system, I noticed that there is no binary
> > difference between tdb and tdb2 indexes. would it be fair to describe
> tdb2
> > as a tdb+txn with different access methods?
>
> Are you looking at tdblaod vs tdbloader2 (unfortunately named
>
> The TBD2 loader is tdb2.tdbloader.
>
> The disk format for TDB2 is different - it is pushed down one level plus
> the node table and the indexes are different byte structures.  The
> indexes are nearly the same but not quite (there is no link field in the
> leaf blocks; tere is an extra control file ".bpt" per index).
>
> The journal in TDB1 can grow big, the journal in TDB2 is small - a few
> hundrad bytes maximum.
>
> And (by accident!) you can have both in the same directory.  This is not
> a good idea.
>
>      Andy
>
>
> TDB2:
> DB2:
> Data-0001/  tdb.lock
>
> DB2/Data-0001:
> GOSP.bpt  GSPO.bpt        OSP.bpt   POSG.dat           SPO.dat
> GOSP.dat  GSPO.dat        OSP.dat   POSG.idn           SPOG.bpt
> GOSP.idn  GSPO.idn        OSPG.bpt  POS.idn            SPOG.dat
> GPOS.bpt  journal.jrnl    OSPG.dat  prefixes.bpt       SPOG.idn
> GPOS.dat  nodes.bpt       OSPG.idn  prefixes.dat       SPO.idn
> GPOS.idn  nodes.dat       OSP.idn   prefixes-data.bdf  tdb.lock
> GPU.bpt   nodes-data.bdf  POS.bpt   prefixes-data.obj
> GPU.dat   nodes-data.obj  POS.dat   prefixes.idn
> GPU.idn   nodes.idn       POSG.bpt  SPO.bpt
>
> TDB1:
> DB1:
> GOSP.dat  journal.jrnl  OSPG.idn  prefix2id.dat  SPOG.dat
> GOSP.idn  node2id.dat   OSP.idn   prefix2id.idn  SPOG.idn
> GPOS.dat  node2id.idn   POS.dat   prefixes.dat   SPO.idn
> GPOS.idn  nodes.dat     POSG.dat  prefixIdx.dat  stats.opt
> GSPO.dat  OSP.dat       POSG.idn  prefixIdx.idn
> GSPO.idn  OSPG.dat      POS.idn   SPO.dat
>
>
> >
> >
> >>
> >>> If so, I'll open a ticket and write a PR to use a Txn method to fix
> this.
> >>
> >> which ajs6f has merged into the development system.
> >>
> >>>
> >>> 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

Reply via email to