-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Including common Non SFA functions #536
base: geosparql-1.3
Are you sure you want to change the base?
Conversation
Merge DWithin Pull Request content with Non SFA Functions
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Why are acronyms used here like
DWithin
when previous functions all use full wording such ashasMetricParameterLength
? Prefer consistencey across all functions unless a justification is provided - Reference for the Douglas-Peucker algorithm needed
Valid points. @reference: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approved pending suggested changes by @nicholascar
geof:aggCollect (geom: ogc:geomLiteral): ogc:geomLiteral | ||
``` | ||
|
||
The function http://www.opengis.net/def/function/geosparql/aggCollect[`geof:aggCollect`] calculates creates a GeometryCollection literal out of a set of geometries. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo: "calculates creates"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
does geom: ogc:geomLiteral
indicate that it's an array/set?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is a set of ogc:geomLiterals in practice likely bound to a SPARQL variable like in other functions too.
The content of the ogc:geomLiterals could be arrays, e.g. a WKT GeometryCollection could be considered as an array.
Does that answer your question or would you have a different idea how to mark an array/set?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@situx I saw your answer in another issue that one geomLiteral can carry a collection.
But I think this is different: aggregates work on a resultset of multiple geomLiterals, so the function signature should indicate an array. Eg use geomLiteral*
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My comment is answered. But @mperry455 's comment not answered yet
I feel like geof:withinDistance reads a little better than geof:distanceWithin. |
Rename Simplify! :-) |
Discussed simplifyDP function. Given it's the only simplification function being considered currently, we arrived at the decision to call it just |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
geomLiteral array
Would be good to get a few eyes on the options below. Please indicate your preferred options by using thumbs up. You can thumbs down if you're very much against an option. Can people add their thoughts to this before next meeting? Please indicate which option you like. All options require that we add an explanation in the explanatory notes section up top. |
|
|
|
Voting result: annotate as ogc:geomLiteral[] and add explanatory text to describe it. |
I added the array notation to all spatial aggregate functions, added a paragraph to explain the syntax and corrected some mistakes. The PR is therefore again ready for review. |
@@ -1203,6 +1203,8 @@ Implementations shall support the functions | |||
<<Function: geof:boundingCircle, `geof:boundingCircle`>>, | |||
<<Function: geof:metricBuffer, `geof:metricBuffer`>>, | |||
<<Function: geof:buffer, `geof:buffer`>>, | |||
<<Function: geof:metricWithinDistance, `geof:metricWithinDistance`>>, | |||
<<Function: geof:WithinDistance, `geof:WithinDistance`>>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lowercase 'w'? geof:withinDistance instead of geof:WithinDistance
|
||
Returns true if `geom2` is within a given distance of `geom1`. Calculations are according to the units in the spatial reference system of `geom1`. The triple store implementation needs to take care of a conversion between meter and the unit of the spatial reference system. | ||
|
||
==== Function: geof:sfWithinDistance |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
geof:withinDistance?
spec/sections/07-conventions.adoc
Outdated
@@ -57,6 +57,12 @@ The following IRI namespace prefixes are used throughout this document: | |||
|
|||
All of these namespace prefixes in the previous section resolve to resources that contain their namespace content except for `eg:` (`http://example.com/`), which is used just for examples, and `ogc:` (`http://www.opengis.net/`), which is used in requirement specifications as a placeholder for the geometry literal serialization used in a fully-qualified conformance class, e.g. http://www.opengis.net/ont/geosparql#wktLiteral[`+<http://www.opengis.net/ont/geosparql#wktLiteral>+`]. | |||
|
|||
=== Data Types for Spatial Aggregate Functions | |||
|
|||
In this specification we use the placeholder URI ogc:geomLiteral to describe any geometry literal which is defined in this specification. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
which -> that
=== Data Types for Spatial Aggregate Functions | ||
|
||
In this specification we use the placeholder URI ogc:geomLiteral to describe any geometry literal which is defined in this specification. | ||
To express a list of such literals, for example as input parameters for spatial aggregate functions, we use the notation ogc:geomLiteral[]. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
don't you need to put ogc:geomLiteral[] in some code markers? (I'm not familiar with adoc)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I do not think so. However, should we find it disturbing we can still correct the styling later on
|
||
In this specification we use the placeholder URI ogc:geomLiteral to describe any geometry literal which is defined in this specification. | ||
To express a list of such literals, for example as input parameters for spatial aggregate functions, we use the notation ogc:geomLiteral[]. | ||
We do not define the order of ogc:geomLiteral[]. The order is to be determined by implementers. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't understand that. A "list" is ordered, so how do you mean implementers can change it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A list is ordered. But how it is ordered, e.g., by URI alphabetically or not at all, should be up to the implementers.
distance: xsd:double): xsd:boolean | ||
``` | ||
|
||
Returns true if `geom2` is within a given distance of `geom1`. Calculations are according to the units in the spatial reference system of `geom1`. The triple store implementation needs to take care of a conversion between meter and the unit of the spatial reference system. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"given distance of geom1
" -> add "in meters"
geof:aggCollect (geom: ogc:geomLiteral): ogc:geomLiteral | ||
``` | ||
|
||
The function http://www.opengis.net/def/function/geosparql/aggCollect[`geof:aggCollect`] calculates creates a GeometryCollection literal out of a set of geometries. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My comment is answered. But @mperry455 's comment not answered yet
Per SWG discussion on 10/16/2024:
Please comment on this thread with opinions on the options. |
I vote for:
(if the implementers support this functionality - probably will) ultimately
|
Vote regarding ordering of ogc:geometryLiteral[] input to aggregates to make result CRS deterministic. Thumbs up is in favour, Thumbs down is have objections. |
Option 1: Leave it up to implementers to determine the output CRS |
Option 2: Add a new target_crs argument to aggregate functions |
Option 3: Document that users can transform the output of the aggregate to their desired CRS and then leave it up to implementers to determine the output CRS |
Option 4: Specify an ordering criteria |
I added a comment on parameters of spatial aggregate functions, so this pull request is now again ready for review |
Closes #257
Closes #341
Closes #400