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

Implement query language #14

Closed
proycon opened this issue May 3, 2023 · 4 comments
Closed

Implement query language #14

proycon opened this issue May 3, 2023 · 4 comments
Assignees
Labels
enhancement New feature or request ready This has been implemented but not released yet
Milestone

Comments

@proycon
Copy link
Contributor

proycon commented May 3, 2023

Implement a higher-level query language. Effectively parsing and translating high-level queries into calls to lower-level search methods. One major challenge is to find in what parts of a query to execute before others, in such a way that the search space is as small as possible (= quickest search results and most performant).

Depends on:

This will take significant time to implement (wild guess: 150 hours).

@proycon proycon added the enhancement New feature or request label May 3, 2023
@proycon proycon self-assigned this May 3, 2023
@proycon
Copy link
Contributor Author

proycon commented Jun 16, 2023

I've done a lot of brainstorming on this this week and this is a highly complex topic.

  • A query language needs to be formulated (Formulate a STAM Query Language stam#12)
  • A parser needs to be written to parse the language
  • The parsed query needs to be transformed in to an executable Query Plan, at this point a dependency graph/tree is usually formed, and a query optimiser finds an execution order that is performant.
  • Last the query engine (interpreter) executes the query plan and returns the results

(I think my earlier time estimate can be at least doubled or tripled)

I'm taking a step back a step back at this stage and postponing such an implementation until a later point in time where it becomes more relevant. I think at this stage (with no real users yet) it's more prudent to focus on searching with the lower-level API that is already implemented, and optimize and document that API.

@proycon
Copy link
Contributor Author

proycon commented Jul 4, 2023

Coming back to this topic: I did some further investigation and came to the conclusion that the current lower-level API is insufficient for proper search and querying. Expressing a higher-level search question with this API is simply too complex. So a higher-level search interface (API) is something that can not be avoided anymore.

@proycon
Copy link
Contributor Author

proycon commented Oct 14, 2023

A higher-level API has now been implemented, it's still short of a fully-fledged query language, but it makes this less of a priority.

proycon added a commit that referenced this issue Nov 15, 2023
proycon added a commit that referenced this issue Nov 17, 2023
proycon added a commit that referenced this issue Nov 17, 2023
proycon added a commit that referenced this issue Nov 17, 2023
@proycon proycon added this to the v0.9.0 milestone Dec 12, 2023
proycon added a commit that referenced this issue Dec 14, 2023
@proycon proycon added the ready This has been implemented but not released yet label Jan 11, 2024
@proycon
Copy link
Contributor Author

proycon commented Jan 11, 2024

The query language has been implemented, they may still be some loose ends but most of it works nicely.

@proycon proycon closed this as completed Jan 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request ready This has been implemented but not released yet
Development

No branches or pull requests

1 participant