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

Add some kind of "combinator" builder #728

Open
audiodude opened this issue May 1, 2024 · 0 comments
Open

Add some kind of "combinator" builder #728

audiodude opened this issue May 1, 2024 · 0 comments

Comments

@audiodude
Copy link
Member

Sometimes there's no one perfect tool for building a selection. Users are likely to want to combine methods from multiple builders. We should create a "combination builder" (name is up for debate). This would consist mostly of a dropdown selection of the existing builders that the user has created, with some number of mathematical set operations (probably union, intersection, and difference).

We could build a single set "expression" where the user fills in the sets (builders) that they wish to operate on. Something like:

(A ∪ B ∪ ...) - (C ∪ D ∪ ...)

Where the user provides their existing builders as values of A, B, C, D etc. We could also provide a toggle for Union/Intersection for each parenthesized expression, like Petscan does. This is probably the easiest to explain:

Include [all articles | articles that are shared] between [ A | B | C], but exclude [all articles | articles that are shared] between [ A | B | C].

An interesting question is if we want to let combinator builders themselves be combined. Conceptually and architecturally there's no problem with it, but it might be a case of "handing the user a footgun" where they create a complex chain of combined builders and get frustrated.

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

1 participant