OK yes I see, thank you for the findings. That would explain the situation.

I will take a look at geo:coordinateDimension. So I think what we would
like to avoid is a situation where higher level dimensions are quietly
skipped altogether. Even though using x, y access methods on higher level
dimension data will lead to geographically incorrect results.


Marco



On Mon, Dec 13, 2021 at 12:02 PM Greg <galbis...@mail.com> wrote:

> Ah, okay. That link is to the 11-52r3 version while I believe the final
> version is 11-52r4. In the later draft, Req 12 became Req 9 and the
> 'is3D' was removed.
> I've found the OGC website can be a bit hit and miss about indicating
> what are latest and deprecated versions.
>
> https://www.ogc.org/standards/geosparql#downloads
>
> https://portal.ogc.org/files/?artifact_id=47664
>
> Greg
>
> On 12/12/2021 20:41, Marco Neumann wrote:
> > I wasn't are of the geo:is3D property myself but is is apparently in Req
> 12
> > of the final GeoSPARQL release V1.0
> >
> > https://portal.ogc.org/files/?artifact_id=44722
> >
> > maybe it's only in the requirements.
> >
> >
> >
> > On Sun, Dec 12, 2021 at 8:24 PM Greg <galbis...@mail.com> wrote:
> >
> >> Hi,
> >>
> >> The WKT parser supports XY, XYZ, XYM, and XYZM coordinate notations. The
> >> presence of dimensions beyond XY should not have an impact on the
> >> geomtery being used in spatial relation or other queries. The triples
> >> exist in the graph and will be processed, but the GeoSPARQL 1.0 is 2D
> >> only so the extra dimensions are not used in calculations.
> >>
> >> I'm not aware of an 'is3D' property in the v1.0 spec as this can be
> >> tested using the 'geo:coordinateDimension' (either 2, 3, or 4 - i.e. XY,
> >> XYZ, XYM and XYZM) and/or 'geo:spatialDimension' (either 2 or 3 - i.e.
> >> XY and XYM or XYZ and XYZM) properties of geo:Geometry (Section 8.4).
> >> These values are inferred in the Jena implementation and do not need to
> >> asserted to be accessed.
> >>
> >> The standard also states that invalid geometry literals are to be
> >> treated as errors, hence the 'DatatypeFormatException'.
> >>
> >> Thanks,
> >>
> >> Greg
> >>
> >> On 11/12/2021 19:33, Marco Neumann wrote:
> >>> BTW this (the implementation of the property function) would be a great
> >>> project for members in the community to make a contribution to the Jena
> >>> project and the geosparql modul in particular.  I would think that this
> >>> could be a well manageable task for an experienced java developer with
> an
> >>> interest in geospatial data processing.
> >>>
> >>>
> >>>
> >>> On Sat, Dec 11, 2021 at 6:19 PM Marco Neumann <marco.neum...@gmail.com
> >
> >>> wrote:
> >>>
> >>>> That said, I am just looking at the code base and I think we are
> >> missing a
> >>>> property function for is3D which is mentioned in the  v1.0 spec.
> >>>>
> >>>> On Sat, Dec 11, 2021 at 5:14 PM Marco Neumann <
> marco.neum...@gmail.com>
> >>>> wrote:
> >>>>
> >>>>> good to see some discussion around this at GeoSPARQL 1.1. But from
> >> what I
> >>>>> can see it is still in an early phase with regards to 3D.
> >>>>>
> >>>>> The name geosparql++ was just used  as a flag to indicate to the user
> >>>>> that we are operating outside of the realm of OGC geosparql 1.0 spec.
> >>>>>
> >>>>> similar to what we do with sparql vs arq syntax
> >>>>>
> >>>>>
> >>>>>
> >>>>> On Sat, Dec 11, 2021 at 5:01 PM Lorenz Buehmann <
> >>>>> buehm...@informatik.uni-leipzig.de> wrote:
> >>>>>
> >>>>>> It's on the way with GeoSPARQL 1.1, isn't it? At least there are
> >> tickets
> >>>>>> related to it, e.g. [1] and many functions will be stated to work on
> >> 3D
> >>>>>> as well [2]
> >>>>>>
> >>>>>>> I personally think we should go beyond GeoSPARQL soon with Jena to
> >>>>>> provide
> >>>>>>> users with more advanced features. Possibly flag it as geosparql++
> or
> >>>>>> the
> >>>>>>> like.
> >>>>>> You mean because there was already this GeoSPARQL+ thing from
> Steffen
> >>>>>> Staab group with support for rasterized data? It's a shame that
> those
> >>>>>> stuff does never make it into the main public projects they are
> based
> >>>>>> on. What a waste of resources and time (from my point of view)
> >>>>>>
> >>>>>> [1] https://github.com/opengeospatial/ogc-geosparql/issues/238
> >>>>>> [2]
> >>>>>>
> >>>>>>
> >>
> https://opengeospatial.github.io/ogc-geosparql/geosparql11/spec.html#_b_1_functions_summary_table
> >>>>>> On 11.12.21 17:39, Marco Neumann wrote:
> >>>>>>> That's correct Jean-Marc, no comma.
> >>>>>>>
> >>>>>>> And yes the OGC GeoSPARQL spec is not supporting 3D access methods.
> >>>>>> And if
> >>>>>>> you record a third dimension, which is of course possible, it will
> be
> >>>>>>> ignored in Jena. Unfortunately the entire record will be. We could
> >>>>>> record
> >>>>>>> this as a bug but it's really not supported at the moment by the
> >> spec.
> >>>>>> Many
> >>>>>>> of the spatial functions in the OGC GeoSPARQL spec operate with a
> 2D
> >>>>>>> reference system.
> >>>>>>>
> >>>>>>> I personally think we should go beyond GeoSPARQL soon with Jena to
> >>>>>> provide
> >>>>>>> users with more advanced features. Possibly flag it as geosparql++
> or
> >>>>>> the
> >>>>>>> like.
> >>>>>>>
> >>>>>>> Best,
> >>>>>>> Marco
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> On Sun, Dec 5, 2021 at 4:15 PM Jean-Marc Vanel <
> >>>>>> jeanmarc.va...@gmail.com>
> >>>>>>> wrote:
> >>>>>>>
> >>>>>>>> I fixed the WKT not having the right datatype, as said before;
> here
> >>>>>> are the
> >>>>>>>> SPARQL used to check and fix:
> >>>>>>>> COUNT-spatial-wkt-as-string.rq
> >>>>>>>> <
> >>>>>>>>
> >>
> https://github.com/jmvanel/semantic_forms/blob/master/sparql/COUNT-spatial-wkt-as-string.rq
> >>>>>>>> FIX-spatial-wkt-as-string.upd.rq
> >>>>>>>> <
> >>>>>>>>
> >>
> https://github.com/jmvanel/semantic_forms/blob/master/sparql/FIX-spatial-wkt-as-string.upd.rq
> >>>>>>>> Now this is not the end of the road . Another imperfect data
> causing
> >>>>>>>> geosparql initialization to fail :
> >>>>>>>>
> >>>>>>>> *Exception: Build WKT Geometry Exception - Type: point,
> Coordinates:
> >>>>>>>> (2.353821,48.83399,0). Index 1 out of bounds for length 1*
> >>>>>>>> 2021-12-05T15:48:54.166Z
> >> [application-akka.actor.default-dispatcher-5]
> >>>>>>>> ERROR jena -     Exception class:class
> >>>>>>>> org.apache.jena.datatypes.DatatypeFormatException
> >>>>>>>> 2021-12-05T15:48:54.167Z
> >> [application-akka.actor.default-dispatcher-5]
> >>>>>>>> ERROR jena -     Exception
> >>>>>>>> org.apache.jena.datatypes.DatatypeFormatException: Build WKT
> >> Geometry
> >>>>>>>> Exception - Type: point, Coordinates: (2.353821,48.83399,0).
> Index 1
> >>>>>> out of
> >>>>>>>> bounds for length 1
> >>>>>>>>
> >>>>>>>>
> >>
> org.apache.jena.geosparql.implementation.parsers.wkt.WKTReader.buildGeometry(WKTReader.java:141)
> >>
> org.apache.jena.geosparql.implementation.parsers.wkt.WKTReader.<init>(WKTReader.java:50)
> >>
> org.apache.jena.geosparql.implementation.parsers.wkt.WKTReader.extract(WKTReader.java:292)
> >>>>>>>>
> >>
> org.apache.jena.geosparql.implementation.datatype.WKTDatatype.read(WKTDatatype.java:89)
> >>
> org.apache.jena.geosparql.implementation.index.GeometryLiteralIndex.retrieveMemoryIndex(GeometryLiteralIndex.java:69)
> >>
> org.apache.jena.geosparql.implementation.index.GeometryLiteralIndex.retrieve(GeometryLiteralIndex.java:51)
> >>
> org.apache.jena.geosparql.implementation.datatype.GeometryDatatype.parse(GeometryDatatype.java:57)
> >>
> org.apache.jena.geosparql.implementation.GeometryWrapper.extract(GeometryWrapper.java:1176)
> >>>>>>>>
> >>
> org.apache.jena.geosparql.implementation.GeometryWrapper.extract(GeometryWrapper.java:1137)
> >>
> org.apache.jena.geosparql.implementation.GeometryWrapper.extract(GeometryWrapper.java:1147)
> >> org.apache.jena.geosparql.configuration.ModeSRS.search(ModeSRS.java:61)
> >>
> org.apache.jena.geosparql.configuration.GeoSPARQLOperations.findModeSRS(GeoSPARQLOperations.java:520)
> >>>>>>>> Is it because the WKT separator should be a space instead of a
> >> comma,
> >>>>>> or
> >>>>>>>> because 3D is not allowed ?
> >>>>>>>>
> >>>>>>>> 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 dim. 5 déc. 2021 à 13:03, Jean-Marc Vanel <
> >>>>>> jeanmarc.va...@gmail.com> a
> >>>>>>>> écrit :
> >>>>>>>>
> >>>>>>>>> After looking at this code, failing line in bold:
> >>>>>>>>>
> >>>>>>>>>
> >>
> jena-geosparql/src/main/java/org/apache/jena/geosparql/configuration/ModeSRS.java
> >>
> https://github.com/apache/jena/blob/main/jena-geosparql/src/main/java/org/apache/jena/geosparql/configuration/ModeSRS.java
> >>>>>>>>>            ExtendedIterator<RDFNode> nodeIter =
> >>>>>>>>> model.listObjectsOfProperty(Geo.HAS_SERIALIZATION_PROP);
> >>>>>>>>>            boolean isGeometryLiteralsFound = nodeIter.hasNext();
> >>>>>>>>>            if (!isGeometryLiteralsFound) {
> >>>>>>>>>                NodeIterator wktNodeIter =
> >>>>>>>>> model.listObjectsOfProperty(Geo.AS_WKT_PROP);
> >>>>>>>>>                NodeIterator gmlNodeIter =
> >>>>>>>>> model.listObjectsOfProperty(Geo.AS_GML_PROP);
> >>>>>>>>>                nodeIter = wktNodeIter.andThen(gmlNodeIter);
> >>>>>>>>>            }
> >>>>>>>>>
> >>>>>>>>>            while (nodeIter.hasNext()) {
> >>>>>>>>>                RDFNode node = nodeIter.next();
> >>>>>>>>>                if (node.isLiteral()) {
> >>>>>>>>> *                GeometryWrapper geometryWrapper =
> >>>>>>>>> GeometryWrapper.extract(node.asLiteral());*
> >>>>>>>>>
> >>>>>>>>> I did SELECT queries to try to understand what is wrong .
> >>>>>>>>> It appears that these triples are not present:
> >>>>>>>>> ?S <http://www.opengis.net/ont/geosparql#hasSerialization> ?O .
> >>>>>>>>> ?S <http://www.opengis.net/ont/geosparql#asGML> ?O .
> >>>>>>>>>
> >>>>>>>>> BUT, there is a bunch of these triples:
> >>>>>>>>> ?S <http://www.opengis.net/ont/geosparql#asWKT> ?O .
> >>>>>>>>>
> >>>>>>>>> Here is one example of the object values:
> >>>>>>>>> "POINT(-4.189911,54.880557,0)"
> >>>>>>>>> I probably imported them by hacking a JSON API as JSON-LD , I
> have
> >> to
> >>>>>>>>> check my journals ...
> >>>>>>>>>
> >>>>>>>>> Looking at the OGC GeoSPARQL standard, I saw that the WKT strings
> >>>>>> should
> >>>>>>>>> have this datatype :
> >>>>>>>>> http://www.opengis.net/ont/geosparql#wktLiteral
> >>>>>>>>>
> >>>>>>>>> So I can make a SPARQL update to FIX my data .
> >>>>>>>>> But maybe Jena GeoSPARQL could be forgiving about the string
> >>>>>> datatype for
> >>>>>>>>> WKT data .
> >>>>>>>>> And the error message should be more explicit ...
> >>>>>>>>>
> >>>>>>>>> Thanks Andy for the quick answer.
> >>>>>>>>>
> >>>>>>>>> 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 dim. 5 déc. 2021 à 11:52, Jean-Marc Vanel <
> >>>>>> jeanmarc.va...@gmail.com>
> >>>>>>>> a
> >>>>>>>>> écrit :
> >>>>>>>>>
> >>>>>>>>>> After having fixed bad data in the TDB database (latitude is
> >>>>>> present but
> >>>>>>>>>> not longitude, coordinates as strings , see issue
> >>>>>>>>>> https://issues.apache.org/jira/browse/JENA-2202 ),
> >>>>>>>>>> there is an exception, probably related to the database content.
> >>>>>>>>>> Here is the log:
> >>>>>>>>>> Dec 05, 2021 9:57:33 AM
> >>>>>>>>>> org.apache.sis.referencing.factory.sql.EPSGFactory <init>
> >>>>>>>>>> WARNING: The “SIS_DATA” environment variable is not set.
> >>>>>>>>>> 2021-12-05T09:57:33.940Z
> >>>>>> [application-akka.actor.default-dispatcher-9]
> >>>>>>>>>> INFO  jena - SpatialIndex: isFunctionRegistered true
> >>>>>>>>>> 2021-12-05T09:57:33.941Z
> >>>>>> [application-akka.actor.default-dispatcher-9]
> >>>>>>>>>> INFO  jena - Before setupSpatialIndex
> >>>>>>>>>> 2021-12-05T09:57:33.948Z
> >>>>>> [application-akka.actor.default-dispatcher-9]
> >>>>>>>>>> INFO  o.a.j.g.c.GeoSPARQLOperations - Find Mode SRS - Started
> >>>>>>>>>>
> >>>>>>>>>> And here is the exception:
> >>>>>>>>>> *Exception: Unrecognised Geometry Datatype:
> >>>>>>>>>> http://www.w3.org/2001/XMLSchema#string
> >>>>>>>>>> <http://www.w3.org/2001/XMLSchema#string> Ensure that Datatype
> is
> >>>>>>>> extending
> >>>>>>>>>> GeometryDatatype.*
> >>>>>>>>>>
> >>>>>>>>>>
> >>
> org.apache.jena.geosparql.implementation.datatype.GeometryDatatype.get(GeometryDatatype.java:78)
> >>
> org.apache.jena.geosparql.implementation.datatype.GeometryDatatype.get(GeometryDatatype.java:86)
> >>
> org.apache.jena.geosparql.implementation.GeometryWrapper.extract(GeometryWrapper.java:1175)
> >>
> org.apache.jena.geosparql.implementation.GeometryWrapper.extract(GeometryWrapper.java:1137)
> >>
> org.apache.jena.geosparql.implementation.GeometryWrapper.extract(GeometryWrapper.java:1147)
> >> org.apache.jena.geosparql.configuration.ModeSRS.search(ModeSRS.java:61)
> >>
> org.apache.jena.geosparql.configuration.GeoSPARQLOperations.findModeSRS(GeoSPARQLOperations.java:520)
> >>
> org.apache.jena.geosparql.spatial.SpatialIndex.buildSpatialIndex(SpatialIndex.java:336)
> >>
> org.apache.jena.geosparql.configuration.GeoSPARQLConfig.setupSpatialIndex(GeoSPARQLConfig.java:263)
> >>
> deductions.runtime.jena.RDFStoreLocalJenaProviderObject$.createDatabase(RDFStoreLocalJenaProvider.scala:175)
> >>>>>>>>>> I use the latest Jena release 4.2.0 . Note that there is no
> >> trouble
> >>>>>> on
> >>>>>>>> my
> >>>>>>>>>> development machine, only on the production site , although the
> >>>>>> source
> >>>>>>>> is
> >>>>>>>>>> the same .
> >>>>>>>>>>
> >>>>>>>>>> Jean-Marc Vanel
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>> --
> >>>>>
> >>>>>
> >>>>> ---
> >>>>> Marco Neumann
> >>>>> KONA
> >>>>>
> >>>>>
> >>>> --
> >>>>
> >>>>
> >>>> ---
> >>>> Marco Neumann
> >>>> KONA
> >>>>
> >>>>
> >
>


-- 


---
Marco Neumann
KONA

Reply via email to