Skip to content

Support filtering #4

@mindsocket

Description

@mindsocket

We have a schema, and it is open for extension.

It should be possible to filter an OST to show more or less detail.

Less depth for a simplified view of just the top layers
Less breadth to focus in on an area
Less density to exclude ideas that aren't in focus (eg leave out status: identified

I'm hoping we can define a simple filter language or find an existing one that's human friendly and works with json. Todoist filters are a good reference - they support basic boolean logic(| and & and parens), some keywords that translate to specific filters (eg "today", "@Label"). Another source of inspiration might be something akin to CSS or XPath selectors.

Let's do a top down and bottom up investigation of options - top down for good filter approaches, bottom up for existing low level json filtering - then see where they meet.

We'll also need to reconcile how relationships and hierarchies are selected. I don't necessarily want to go down a graphql path. A simple rubric might be that nodes that match the filter will also always include all of their parent nodes (even if parent nodes don't match a criteria; or possibly unless parent nodes don't match a specific filter criteria related to traversal). We might need a separate "where clause" (ie filter) and "select/include clause" (ie what to include from the matching objects and across relationships).

Example use cases to be fleshed out further, but off the top of my head:

  • High level selected opportunities (no solutions or experiments) - select opportunity where ( wondering | exploring ) & opportunity (all layers above implied)
  • Detail view of a goal - select goal where "Increase MAU" (title match) include goal to experiment
  • All nodes reachable by parent links up and/or child links down from a given node

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions