# Some dashboard-like extensions and 'overviews' for org roam

**URL:** <https://org-roam.discourse.group/t/some-dashboard-like-extensions-and-overviews-for-org-roam/1656>\
**Category:** UX & UI\
**Created:** [June 4, 2021, 3:44pm UTC](https://org-roam.discourse.group/t/some-dashboard-like-extensions-and-overviews-for-org-roam/1656 "2021-06-04T15:44:25Z")\
**Posts on this page:** 1\
**Showing post:** 34

<div class="post-metadata">

**Author:** ![ThomasFKJorna](https://avatars.discourse-cdn.com/v4/letter/t/848f3c/32.png) [@ThomasFKJorna](https://org-roam.discourse.group/u/ThomasFKJorna)\
**Post date:** [November 16, 2021, 1:58pm UTC](https://org-roam.discourse.group/t/some-dashboard-like-extensions-and-overviews-for-org-roam/1656/34 "2021-11-16T13:58:25Z")

</div>

I think it would be doable to map to SQL, somewhat similar to this package:

> [@Org-roam-search](https://org-roam.discourse.group/t/org-roam-search/2031):
>
> search org roam database using org-ql type syntax. For example, the following query tag:tag1,tag2 title:title1,title2 both:query1,query2 query3 query4 searches for file with tag tag1,tag2,query1,query2,query3 and query4 and has in titles/aliases title1,title2,query3 and query4. alpha software. I have been using it daily as a drop-in replacement for org-roam-find-file. works with org-roam version 1. It can be easily ported to org-roam verison 2.

This package only works with org-roam-v2, but should be mappable to v2. I think it’s doable because we basically just need to write some “where” queries.

However, the only way to make this work sensibly would be to restrict which kinds of queries can be made using the syntax and not just allow ALL sql (although we could allow users to just write sql if they want, but that should be implementation dependent). I am thinking of “allowing” the following keywords:

- file
- title
- id
- level
- tag
- todo state
- directory (same as file, but useful to have it for clarity)
- ctime (debatable as it’s not logged directly)
- mtime
- other properties (debatable, as this is not easily accessed using emacsql)
- is linked to from (backlinks basically)
- links to (forward links)
- connection (forward/backlink agnostic, should be default)
- cites

Additionally, I would like “bare” words in the query to be used to make ripgrep searches for those words. I think that is very useful, and ripgrep is so fast that I don’t think we should be worried about performance.

I would use the following modifiers

- and
- or
- not

For keywords that have a numeric value (creation date, number of links etc) we should have a few modifiers, namely

- \<
- \<=
- \>
- =\>
- =

Should be doable to create such a syntax, we just need a way to map the appropriate keywords/modifiers to SQL WHERE queries, most of which are not very difficult (for filenames, just `:where (like node:file "%<filequery>%")`. Tags and cites are somewhat more complex, but not much, and for full-text search we don’t need to make queries obviously.

As for the actual syntax, I think copying `org-ql`’s syntax is a good idea, might even be able to integrate with it.

What do you think?

---

_[View the full topic](https://org-roam.discourse.group/t/some-dashboard-like-extensions-and-overviews-for-org-roam/1656)._
