Hi Jean-Marc,
You refer to a remote endpoint for your example data and don't indicate
any data loading into the TDB dataset. If you are querying against the
endpoint then the GeoSPARQL module will need to configured on the
endpoint server. As stated in the documentation "If your dataset needs
to be separate from your application and accessed over HTTP then you
probably need the GeoSPARQL Fuseki project
<https://jena.apache.org/documentation/geosparql/geosparql-fuseki>. The
GeoSPARQL functionality needs to be setup in the application or Fuseki
server where the dataset is located." The line
`TDBFactory.createDataset` only creates an empty in-memory dataset.
Either of these may be why you are receiving no results.
I'm not sure how you've got the impression that no configuration is
required when there is a section titled `SPARQL Query Configuration`
which states "Using the library for SPARQL querying requires one line of
code." followed by a series of configuration examples. The optimal
configuration is dependant upon the dataset, queries, and resources
available so it is necessary for users to determine.
The Spatial Index section in the documentation may assist with the error
you are now encountering. I've added an additional note to the
`jena-spatial` section in documentation to make the solution clearer in
the future. It should only require invoking
`GeoSPARQLConfig.setupSpatialIndex(dataset);` or similar on the target
dataset.||
All the best,
Greg
On 29/10/2020 09:23, Jean-Marc Vanel wrote:
Hi Greg
The data are available at this SPARQL endpoint :
http://semantic-forms.cc:1952/sparql2
the queries are given in this thread.
BUT, I reread the documentation, and added
org.apache.jena.geosparql.configuration.GeoSPARQLConfig.setupMemoryIndex()
before calling TDBFactory.createDataset()
And now , with the same very simple query with spatial:withinBox() , it
says :
org.apache.jena.sparql.expr.ExprEvalException: Dataset Context does not
contain SpatialIndex.
From the documentation, it is not clear what is the minimal, or optimal,
configuration. A casual reading even gives the impression that no
configuration is necessary.
Jean-Marc Vanel
<http://semantic-forms.cc:9112/display?displayuri=http://jmvanel.free.fr/jmv.rdf%23me>
+33
(0)6 89 16 29 52
Le mer. 28 oct. 2020 à 23:29, Greg <[email protected]> a écrit :
Hi Jean-Marc,
If you have an sample of data then I can take a look into this further.
Thanks,
Greg
On 26/10/2020 16:56, Jean-Marc Vanel wrote:
Indeed this helps, but it's still not clear weather and how I have to
prepare the database for GeoSparlql queries.
I changed my query according to Greg's advice:
PREFIX spatial: <http://jena.apache.org/spatial#>
SELECT * WHERE {
?feature spatial:withinBox( 43.0 0.0 48.0 10.0 100 )
} LIMIT 100
but no results.
Of course I checked that I have many triples with geo: coordinates within
that rectangle :
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
SELECT * WHERE {
?S geo:lat ?LAT .
?S geo:long ?LON .
} LIMIT 100
Regarding simple export from triples with geo: coordinates to GML or
GeoJson, I'll write some code that I'll share.
Jean-Marc Vanel
<
http://semantic-forms.cc:9112/display?displayuri=http://jmvanel.free.fr/jmv.rdf%23me
+33
(0)6 89 16 29 52
Le lun. 26 oct. 2020 à 16:38, Greg Albiston <[email protected]> a
écrit :
Hi Jena-Marc,
The namespace <http://geovocab.org/spatial#> is for NeoGeo Spatial
ontology, which has similarities to GeoSPARQL specification but is not
fully compliant.
The Apache Jena spatial property functions use
<http://jena.apache.org/spatial#>. These are additional functions that
extend the GeoSPARQL standard.
So you are likely getting no result as the "spatial:withinBox" function
in the query is undefined.
Regarding your other question about GML and GeoJSON documents. The
GeoSPARQL standard doesn't cover serialisation from or to geospatial
document formats into the GeoSPARQL "Feature/Geometry/GeometryLiteral"
structure. This is likely because it is expected that most use cases
would stay in RDF format once setup. From my experience the GML
standards are also unbelievably convoluted to fully support.
It may be straight forward to convert a list of points to a minimum GML
document that QGIS accepts.
The "convert" functions are to harmonise a dataset to a single SRS and
datatype to reduce overhead and confusion from switching between
different formats when querying the data. Or to switch a dataset from
one SRS or datatype to another, i.e. consolidating diverse data sources.
They aren't for generating non-RDF spatial documents. These are also for
GeoSPARQL structure datasets so a dataset using the LatLon geo
predicates would need to be converted (for which the
"convertGeoPredicates" might be useful).
Hope this helps,
Greg
On 26/10/2020 14:17, Jean-Marc Vanel wrote:
I missed ApacheCon, and I need some concrete hints sooner than next
year.
Currently my database gives an empty answer to :
PREFIX spatial: <http://geovocab.org/spatial#>
# ?feature spatial:withinBox(?latMin ?lonMin ?latMax ?lonMax [ ?limit])
SELECT * WHERE {
?feature spatial:withinBox( 43.0 0.0 46.0 10.0 100 )
} LIMIT 100
Should I apply once for all GeoSPARQLOperations.convert() ?
static Dataset
<
https://jena.apache.org/documentation/javadoc/arq/org/apache/jena/query/Dataset.html?is-external=true
convert
<
https://jena.apache.org/documentation/javadoc/geosparql/org/apache/jena/geosparql/configuration/GeoSPARQLOperations.html#convert-org.apache.jena.query.Dataset-
(Dataset
<
https://jena.apache.org/documentation/javadoc/arq/org/apache/jena/query/Dataset.html?is-external=true
dataset)
Convert the input dataset to the most frequent coordinate reference
system
and default datatype.
Jean-Marc Vanel
<
http://semantic-forms.cc:9112/display?displayuri=http://jmvanel.free.fr/jmv.rdf%23me
+33
(0)6 89 16 29 52
Le lun. 26 oct. 2020 à 11:02, Marco Neumann <[email protected]>
a
écrit :
good questions Jean-Marc, I will organize a session early in the new
year
to address some of them. In your case geo:lat and geo:long are not
part
of
OGC GeoSPARQL but require a transformation. We have a tool in place
for
that in Jena. And yes displaying large datasets need dedicated
strategies
for efficient processing. The points raised by you would make a good
problem statement for our session next year. Not sure if you have
attended
the ApachCon 2020 GeoSPARQL session last month but it's where I
mentioned further collaboration with third party tool developers as a
possibility. stay tuned.
Marco
On Mon, Oct 26, 2020 at 9:14 AM Jean-Marc Vanel <
[email protected]>
wrote:
After reading the official
https://jena.apache.org/documentation/geosparql/
I'm puzzled as to concrete how to .
My simple export use case
- I have a TDB 1 database with geo:lat and long properties; the
Jena
geosparql dependency is added to my application
- I have a LeafLet viewer able to display any RDF document with
geo:lat
and long properties ; example map
<
https://semantic-forms.cc:1953/assets/geo-map/geo-map.html?link-prefix=http://semantic-forms.cc:1953/display?displayuri=&lang=fr&url=https://semantic-forms.cc:1953/sparql?query=%0APREFIX+form%3A+%3Chttp%3A%2F%2Fraw.githubusercontent.com%2Fjmvanel%2Fsemantic_forms%2Fmaster%2Fvocabulary%2Fforms.owl.ttl%23%3E+%0APREFIX+rdfs%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E+%0APREFIX+geo%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2003%2F01%2Fgeo%2Fwgs84_pos%23%3E+%0APREFIX+foaf%3A+%3Chttp%3A%2F%2Fxmlns.com%2Ffoaf%2F0.1%2F%3E+%0A%0ACONSTRUCT+%7B%0A++%3Fthing+geo%3Along+%3FLONG+.%0A++%3Fthing+geo%3Alat+%3FLAT+.%0A++%3Fthing+rdfs%3Alabel+%3FLAB+.%0A++%3Fthing+foaf%3Adepiction+%3FIMG+.%0A%7D+WHERE+%7B%0A++graph+%3Fg+%7B%0A++++%3Fthing+%3Chttp%3A%2F%2Fpurl.org%2FNET%2Fc4dm%2Fevent.owl%23produced_in%3E+%3Chttp%3A%2F%2Fsemantic-forms.cc%3A1952%2Fldp%2FCormoz%3E+.%0A++%7D%0A++graph+%3Fgcoord+%7B%0A++++%3Fthing+geo%3Along+%3FLONG+.%0A++++%3Fthing+geo%3Alat+%3FLAT+.%0A++%7D%0A++OPTIONAL+%7B%0A+++graph+%3Fg1+%7B%0A++++%3Fthing+rdfs%3Alabel+%3FLAB+%7D+%7D%0A++OPTIONAL+%7B%0A+++graph+%3Fg2+%7B%0A++++%3Fthing+%3Curn%3AdisplayLabel%3E+%3FLAB+%7D+%7D%0A%0A++OPTIONAL+%7B%0A+++graph+%3Fg3+%7B%0A++++%3Fthing+foaf%3Adepiction+%3FIMG+%7D+%7D%0A++OPTIONAL+%7B%0A+++graph+%3Fg4+%7B%0A++++%3Fthing+foaf%3Aimg+%3FIMG+%7D+%7D%0A%0A++++OPTIONAL+%7B%0A+++graph+%3FgrCount+%7B%0A++++%3Fthing+form%3AlinksCount+%3FCOUNT.%0A++%7D+%7D%0A%7D%0AORDER+BY+DESC%28%3FCOUNT%29%0A
; but I found that JavaScript based displayers are falling on
their
knees
(becoming very slow) for thousands of points
- so I plan to use QGIS, so I need an export from RDF to one of
the
formats QGIS supports: GML, GeoJSON , etc
How can I do that ?
Do I have to use one of the convert* methods in
https://jena.apache.org/documentation/javadoc/geosparql/index.html?org/apache/jena/geosparql/configuration/GeoSPARQLOperations.html
?
Jean-Marc Vanel
<
http://semantic-forms.cc:1952/display?displayuri=http://jmvanel.free.fr/jmv.rdf%23me
+33 (0)6 89 16 29 52
Twitter: @jmvanel , @jmvanel_fr ; chat: irc://
irc.freenode.net#eulergui
Chroniques jardin
<
http://semantic-forms.cc:1952/history?uri=http%3A%2F%2Fdbpedia.org%2Fresource%2FChronicle
--
---
Marco Neumann
KONA