Org-roam

This section is empty…

Org-roam's database

Org-roam uses Emacsql. A disturbing consequence of this decision is that every value in the database is an Elisp-readable value. Users of the database are forced to deal with e.g. printed alists inserted into the database.

Tables

nodes

id

The node's UUID. Assuming that Roam uses Org's org-id-uuid, this is a UUIDv4 string.

properties

An alist — seemingly mapping strings to strings — describing the node's properties. The usual Org-mode inheritance rules apply: child nodes inherit file and parent node properties.

Notable properties include

  • "CATEGORY"

  • "ID"

  • "FILE"

olp

I believe olp is an abbreviation for "outline path," i.e. the list of node titles passed through as one travels upward from the node to the top-level (in reverse).

  #+title: My notes!    ; olp = nil

  * Heading 1           ; olp = ("Heading 1")
  ** Heading 2          ; olp = ("Heading 1" "Heading 2")
  *** Heading 3         ; olp = ("Heading 1" "Heading 2" "Heading 3")

See also: level.

level

The node's level of nesting. Files have level 0, 1-star headlines have level 1, etc.

title

The node's title. This is the headline text for headline nodes, or the #+title for file nodes.

pos

The absolute position of the node in the file. File nodes will always have pos 1.