Skip to content
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

update Filtering/CQL to Part 3, 1.0.0-draft.2 #395

Closed
3 tasks done
cportele opened this issue Mar 8, 2021 · 7 comments
Closed
3 tasks done

update Filtering/CQL to Part 3, 1.0.0-draft.2 #395

cportele opened this issue Mar 8, 2021 · 7 comments
Assignees

Comments

@cportele
Copy link
Member

cportele commented Mar 8, 2021

Part 3, 1.0.0-draft.2 (in public review): https://portal.ogc.org/files/?artifact_id=96288&version=2

@cportele cportele assigned cportele and bekakh and unassigned cportele Mar 8, 2021
@azahnen
Copy link
Collaborator

azahnen commented Mar 16, 2021

Implementation tasks:

  • case insensitive keywords
    • define keywords in CqlLexer.g4 as described here
  • filter-crs
    • our CQL text parser already accepts a CRS parameter, currently it is always set to CRS84
    • add read method with additional CRS parameter in Cql/CqlImpl, pass to CqlTextParser.parse
    • add QueryParameterFilterCrs, read and pass to CQL.read in FeatureQueryImpl
  • double quoted identifiers
    • adjust grammar in CqlLexer.g4`
  • axis order of coordinates in ENVELOPE has changed
    • adjust grammar in CqlParser.g4`
  • LIKE operator has additional options
    • adjust grammar in CqlParser.g4` and domain model
  • Array expressions TBD
  • general
    • the BNF definition has changed significantly, but I am not sure to which extent that really changes the resulting grammar, so I would follow these steps:
    • check the current CQL text examples, adjust the existing tests in CqlTextSpec, add missing tests
    • adjust the grammar to make the tests pass

@cportele
Copy link
Member Author

the BNF definition has changed significantly, but I am not sure to which extent that really changes the resulting grammar

In general, it should be the same (except in the cases that I have identified, although I may have missed something). The changes we mainly required for consistency between the BNF grammar and the schema for the JSON encoding, which required a re-factoring: opengeospatial/ogcapi-features#460.

@cportele
Copy link
Member Author

I also noticed that ANYINTERACTS is not implemented, but it is mandatory, so this needs to be supported, too.

In general, we should implement all the temporal operators and align the implementation with the spec, but this can be a second step. For example, After only works with instants or TOverlaps is not the operator specified in the spec.

@cportele
Copy link
Member Author

cportele commented Apr 5, 2021

I found another difference. Currently predicates where both operands are property references (e.g. height < floors) are not supported, but this is required by CQL.

@cportele
Copy link
Member Author

We should decouple array predicates from this issue, I have created #431.

@cportele
Copy link
Member Author

closed by #423

@cportele
Copy link
Member Author

Open issues are in #432.

@azahnen azahnen changed the title Update Filtering/CQL to Part 3, 1.0.0-draft.2 update Filtering/CQL to Part 3, 1.0.0-draft.2 May 7, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants