Roam Research Docs · Developer documentation
{{queries}} (which we've tuned)
[[(rule-a ?a ?b)
...]
[(rule-b ?a ?b)
...]
...]
{{queries}} as input
{{queries}} as input
[
;; rule that checks if a block was created by user with given name
[(created-by ?block ?user-page-title)
[?user-page :node/title ?user-page-title]
[?user :user/display-page ?user-page]
[?block :create/user ?user]]
;; an example of an OR using rules
[(created-by-either ?block ?user-page-title-1 ?user-page-title-2)
(created-by ?block ?user-page-title-1)]
[(created-by-either ?block ?user-page-title-1 ?user-page-title-2)
(created-by ?block ?user-page-title-2)]
]
[:find [?uid ...]
:in $ % [?uid ...]
:where
[?block :block/uid ?uid]
(created-by ?block "Baibhav Bista")]}}
[:find [?uid ...]
:in $ % [?uid ...]
:where
[?block :block/uid ?uid]
(created-by ?block "Baibhav Bista")]
[[(created-by ?block ?user-page-title)
[?user-page :node/title ?user-page-title]
[?user :user/display-page ?user-page]
[?block :create/user ?user]]
[(created-by-either ?block ?user-page-title-1 ?user-page-title-2)
(created-by ?block ?user-page-title-1)]
[(created-by-either ?block ?user-page-title-1 ?user-page-title-2)
(created-by ?block ?user-page-title-2)]]
(fn [block-ents]
(->>
block-ents
(group-by #(count (:block/_refs %)))))
markdown version · view in Roam Research · exported 2026-07-03