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

Support metadata and query languages #269

Open
alangrafu opened this issue Jan 25, 2022 · 0 comments
Open

Support metadata and query languages #269

alangrafu opened this issue Jan 25, 2022 · 0 comments
Labels

Comments

@alangrafu
Copy link

Rationale

Part of the value of a linked set of notes is the ability to slice and dice the data based on a series of customizable features. Having metadata support and query languages that can be used to explore such metadata adds a tremendous value to a tool like bangle.

Examples

I can have a series of pages, one for each project I'm working on. Each project can have links to meeting notes, more documentation, FAQ, etc. Each meeting note can contain a series of TODOs, people who attended those meetings, places and date. Based on such a simple scenario, I can imagine the following situations:

  • I want to find all the TODOs that haven't been completed for project A, across all notes.
  • In some cases, you may want to find the action items that were discussed only in the meetings where X and Y persons were present.
  • Find all the meeting pages related to project X that were created between two dates and that where person C was not included.

Implementation

There are some options on how to implement these features, but the first consideration is that metadata addition should be easy. Obsidian has a nice YAML section at the beginning, but YAML doesn't support links (there are ways to solve this, but not elegantly). Logseq supports their own property:: value format that can be appended to any page or block, but it seems to make the query slow.

Regardless of the solution, Bangle could support custom properties (similar to creating JSON/YAML properties), ideally with types (numbers, strings, dates, internal links).

One possibility is to use SPARQL, which is a W3C standard used for graph queries. One of the benefits of using SPARQL is that is suited for graph-like structures, such as the case of linked notes.

Alternatively, SQL could be used as a query language, assuming some prior schema that allows for extensibility.

@kepta kepta added t/core core track feature and removed enhancement labels Sep 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants