# Zettel sequences and org-roam

**URL:** <https://org-roam.discourse.group/t/zettel-sequences-and-org-roam/3845>\
**Category:** Meta\
**Created:** [August 10, 2025, 10:04am UTC](https://org-roam.discourse.group/t/zettel-sequences-and-org-roam/3845 "2025-08-10T10:04:00Z")\
**Posts on this page:** 19\
**Page:** 1

<div class="post-metadata">

**Author:** ![ChuckSneed](https://yyz2.discourse-cdn.com/free1/user_avatar/org-roam.discourse.group/chucksneed/32/1379_2.png) [@ChuckSneed](https://org-roam.discourse.group/u/ChuckSneed)\
**Post date:** [August 10, 2025, 10:04am UTC](https://org-roam.discourse.group/t/zettel-sequences-and-org-roam/3845/1 "2025-08-10T10:04:00Z")

</div>

> At the corner of each note, Luhmann ascribed each note with an ordered ID, allowing him to link and jump between notes. In Org-roam, we simply use hyperlinks.
> 
> Org-roam is the slip-box, digitalized in Org-mode. Every zettel (card) is a plain-text, Org-mode file. In the same way one would maintain a paper slip-box, Org-roam makes it easy to create new zettels, pre-filling boilerplate content using a powerful templating system.

> **[Org-roam User Manual](https://www.orgroam.com/manual.html#A-Brief-Introduction-to-the-Zettelkasten-Method)**
>
> Org-roam User Manual

* * *

One thing with Luhmann ID system is that it gives his zettels a _sequence_ relation. For example, the zettel 4a3 comes before 4a4 and after 4a2. So, Luhmann’s methods not only allows him to link his zettels to one another, \*but also\* establish some sequence relation.

In org-roam, however, by using the `id:` link, we are **only** establishing linking. The `id:` links themselves do not carry a sequence rule. By looking at outgoing links and incoming links (that is, “backlinks”) of a zettel, you cannot discern which of the linked zettels comes next, elaborates the current zettel’s topic more in a particular direction.

Am I correct in saying this? How do you handle continuity directions in your zettels with org-roam?

---

<div class="post-metadata">

**Author:** ![ChuckSneed](https://yyz2.discourse-cdn.com/free1/user_avatar/org-roam.discourse.group/chucksneed/32/1379_2.png) [@ChuckSneed](https://org-roam.discourse.group/u/ChuckSneed)\
**Post date:** [August 10, 2025, 10:28am UTC](https://org-roam.discourse.group/t/zettel-sequences-and-org-roam/3845/2 "2025-08-10T10:28:46Z")

</div>

I think I can make use of ROAM\_ALIASES property of nodes here. Since nodes can have more than one aliases, I can give a node a luhmann sequence value as one of its ROAM\_ALIASES value:

```auto
* Artificial Intelligence
:PROPERTIES:
:ID: <UUID-VALUE-HERE>
:ROAM_ALIASES: [4a3] AI
:END:

```

and then, another node can have:

```auto
* OpenAI and their funding
:PROPERTIES:
:ID: <UUID-VALUE-HERE>
:ROAM_ALIASES: [4a3b]
:END:

```

* * *

Let’s say I am reading back my note on `OpenAI and their funding` node of mine. I notice that it has a `ROAM_ALIASES` property value `[4a3b]`. Then, even if the text body of the node might not have a link to the `Artificial Intelligence` node, I know that I can search for the `ROAM_ALIASES` value of `[4a3a]` or `[4a3]` and _walk through_ the sequence like that.

Now one cool thing would be org-roam understanding these sequences as **links** (very mich like `id:` links) and maybe offer first class relation to them. But, I think I can live without it as well.

---

<div class="post-metadata">

**Author:** ![ChuckSneed](https://yyz2.discourse-cdn.com/free1/user_avatar/org-roam.discourse.group/chucksneed/32/1379_2.png) [@ChuckSneed](https://org-roam.discourse.group/u/ChuckSneed)\
**Post date:** [August 10, 2025, 11:06am UTC](https://org-roam.discourse.group/t/zettel-sequences-and-org-roam/3845/3 "2025-08-10T11:06:14Z")

</div>

OR, instead of using ROAM\_ALIASES property, I think I can make use of **ROAM\_REFS** property:

> **[Org-roam User Manual](https://www.orgroam.com/manual.html#Refs)**
>
> Org-roam User Manual

It seems to play better with linking and backlinking functionality of org-roam (refs show up automatically on the backlinks buffer for the zettel, and also you can have multiple ref values, etc.)

---

<div class="post-metadata">

**Author:** ![akashp](https://yyz2.discourse-cdn.com/free1/user_avatar/org-roam.discourse.group/akashp/32/1383_2.png) [@akashp](https://org-roam.discourse.group/u/akashp)\
**Post date:** [August 12, 2025, 12:35am UTC](https://org-roam.discourse.group/t/zettel-sequences-and-org-roam/3845/4 "2025-08-12T00:35:34Z")

</div>

Alias might be problem since each alias duplicate to its own node. Org roam lacks hierarchical structuring - let know if roam refs could be hacked to this purpose

---

<div class="post-metadata">

**Author:** ![ChuckSneed](https://yyz2.discourse-cdn.com/free1/user_avatar/org-roam.discourse.group/chucksneed/32/1379_2.png) [@ChuckSneed](https://org-roam.discourse.group/u/ChuckSneed)\
**Post date:** [August 12, 2025, 9:58am UTC](https://org-roam.discourse.group/t/zettel-sequences-and-org-roam/3845/5 "2025-08-12T09:58:45Z")

</div>

> [@akashp](#):
>
> since each alias duplicate to its own node.

Can you explain what you mean by this?

---

<div class="post-metadata">

**Author:** ![nobiot](https://yyz2.discourse-cdn.com/free1/user_avatar/org-roam.discourse.group/nobiot/32/159_2.png) [@nobiot](https://org-roam.discourse.group/u/nobiot)\
**Post date:** [August 12, 2025, 11:45am UTC](https://org-roam.discourse.group/t/zettel-sequences-and-org-roam/3845/6 "2025-08-12T11:45:54Z")

</div>

@ChuckSneed , it’d be easier if you saw it yourself. When you use a completion package such as Ivy, Helm, and Vertico (and I assume you do), the nodes appear “veritically” – one node per line – in the minibuffer. If you have an alias for a node, an alias **also** occupies a line, so that’s two lines for the same node: the title and the alias.

Does this make sense?

---

<div class="post-metadata">

**Author:** ![ChuckSneed](https://yyz2.discourse-cdn.com/free1/user_avatar/org-roam.discourse.group/chucksneed/32/1379_2.png) [@ChuckSneed](https://org-roam.discourse.group/u/ChuckSneed)\
**Post date:** [August 12, 2025, 11:47am UTC](https://org-roam.discourse.group/t/zettel-sequences-and-org-roam/3845/7 "2025-08-12T11:47:00Z")

</div>

> [@nobiot](#):
>
> it’d be easier if you saw it yourself.

yeah I am still awaiting for updateing to debian-13. In the meanwhile I am trying to get a sense of the current state of org-roam.

> [@nobiot](#):
>
> If you have an alias for a node, an alias **also** occupies a line, so that’s two lines for the same node: the title and the alias.

understood.

---

<div class="post-metadata">

**Author:** ![nobiot](https://yyz2.discourse-cdn.com/free1/user_avatar/org-roam.discourse.group/nobiot/32/159_2.png) [@nobiot](https://org-roam.discourse.group/u/nobiot)\
**Post date:** [August 12, 2025, 11:47am UTC](https://org-roam.discourse.group/t/zettel-sequences-and-org-roam/3845/8 "2025-08-12T11:47:31Z")

</div>

Ref may be a good idea.

I’d just use a tag (so that it neatly occupies a column in the minibuffer completion) or add a “Luhmann sequence ID” at the beginning of the title like “`(1.a.12.f) Org-roam is a Great Tool for Note-taking`”.

---

<div class="post-metadata">

**Author:** ![nobiot](https://yyz2.discourse-cdn.com/free1/user_avatar/org-roam.discourse.group/nobiot/32/159_2.png) [@nobiot](https://org-roam.discourse.group/u/nobiot)\
**Post date:** [August 12, 2025, 11:50am UTC](https://org-roam.discourse.group/t/zettel-sequences-and-org-roam/3845/9 "2025-08-12T11:50:24Z")

</div>

> [@ChuckSneed](#):
>
> yeah I am still awaiting for updateing to debian-13. In the meanwhile I am trying to get a sense of the current state of org-roam.

I do not think it has changed much since you left it (not sure exactly when, though). There has been many good updates under the hood, which may not be visible to our naked eyes – one highlight for me is the improvement in the performance when you have many (a few thousand, I think) nodes – @akashp has been instrumental in getting this done in the code, so he could comment…

---

<div class="post-metadata">

**Author:** ![ChuckSneed](https://yyz2.discourse-cdn.com/free1/user_avatar/org-roam.discourse.group/chucksneed/32/1379_2.png) [@ChuckSneed](https://org-roam.discourse.group/u/ChuckSneed)\
**Post date:** [August 12, 2025, 11:52am UTC](https://org-roam.discourse.group/t/zettel-sequences-and-org-roam/3845/10 "2025-08-12T11:52:05Z")

</div>

> [@nobiot](#):
>
> I do not think it has changed much since you left it (not sure exactly when, though).

debian 12 had org-roam version 2.2.2. Debian 13 now has org-roam 2.2.3. Back on version 2.2.2, I had problems with database stuff (see my post history for the threads I opened back then). I am expecting 2.2.3 plays much better now.

---

<div class="post-metadata">

**Author:** ![nobiot](https://yyz2.discourse-cdn.com/free1/user_avatar/org-roam.discourse.group/nobiot/32/159_2.png) [@nobiot](https://org-roam.discourse.group/u/nobiot)\
**Post date:** [August 12, 2025, 11:55am UTC](https://org-roam.discourse.group/t/zettel-sequences-and-org-roam/3845/11 "2025-08-12T11:55:35Z")

</div>

> [@ChuckSneed](#):
>
> Debian 13 now has org-roam 2.2.3. Back on version 2.2.2, I had problems with database stuff (see my post history for the threads I opened back then). I am expecting 2.2.3 plays much better now.

Can’t find anything related to database on this forum under your name. Sorry. But not sure if there has been any change to the database layer in a fundamental way…

---

<div class="post-metadata">

**Author:** ![ChuckSneed](https://yyz2.discourse-cdn.com/free1/user_avatar/org-roam.discourse.group/chucksneed/32/1379_2.png) [@ChuckSneed](https://org-roam.discourse.group/u/ChuckSneed)\
**Post date:** [August 12, 2025, 11:57am UTC](https://org-roam.discourse.group/t/zettel-sequences-and-org-roam/3845/12 "2025-08-12T11:57:11Z")

</div>

Can’t you see this: [Profile - ChuckSneed - Org-roam](https://org-roam.discourse.group/u/chucksneed/activity/topics)

---

<div class="post-metadata">

**Author:** ![ChuckSneed](https://yyz2.discourse-cdn.com/free1/user_avatar/org-roam.discourse.group/chucksneed/32/1379_2.png) [@ChuckSneed](https://org-roam.discourse.group/u/ChuckSneed)\
**Post date:** [August 12, 2025, 11:57am UTC](https://org-roam.discourse.group/t/zettel-sequences-and-org-roam/3845/13 "2025-08-12T11:57:46Z")

</div>

Anyways, see this: [Emacsql-sqlite not running](https://org-roam.discourse.group/t/emacsql-sqlite-not-running/3286)

---

<div class="post-metadata">

**Author:** ![nobiot](https://yyz2.discourse-cdn.com/free1/user_avatar/org-roam.discourse.group/nobiot/32/159_2.png) [@nobiot](https://org-roam.discourse.group/u/nobiot)\
**Post date:** [August 12, 2025, 12:07pm UTC](https://org-roam.discourse.group/t/zettel-sequences-and-org-roam/3845/15 "2025-08-12T12:07:56Z")

</div>

Not sure if 2.2.3 is new enough…

See this item in CHANGELOG: 2.3.0 (2025-05-24)

> <https://github.com/org-roam/org-roam/blob/89dfaef38b6caa3027f20f96a551dc8f194ac533/CHANGELOG.md?plain=1#L41>

---

<div class="post-metadata">

**Author:** ![nobiot](https://yyz2.discourse-cdn.com/free1/user_avatar/org-roam.discourse.group/nobiot/32/159_2.png) [@nobiot](https://org-roam.discourse.group/u/nobiot)\
**Post date:** [August 12, 2025, 12:08pm UTC](https://org-roam.discourse.group/t/zettel-sequences-and-org-roam/3845/16 "2025-08-12T12:08:37Z")

</div>

And… I do not see 2.2.3 in GithHub repo…

---

<div class="post-metadata">

**Author:** ![ChuckSneed](https://yyz2.discourse-cdn.com/free1/user_avatar/org-roam.discourse.group/chucksneed/32/1379_2.png) [@ChuckSneed](https://org-roam.discourse.group/u/ChuckSneed)\
**Post date:** [August 12, 2025, 12:11pm UTC](https://org-roam.discourse.group/t/zettel-sequences-and-org-roam/3845/17 "2025-08-12T12:11:49Z")

</div>

My bad. Debian 13 has version 2.3.1 for org-roam:

> **[Debian -- Details of package elpa-org-roam in trixie](https://packages.debian.org/trixie/elpa-org-roam)**
>
> non-hierarchical note-taking with Emacs Org-mode

---

<div class="post-metadata">

**Author:** ![akashp](https://yyz2.discourse-cdn.com/free1/user_avatar/org-roam.discourse.group/akashp/32/1383_2.png) [@akashp](https://org-roam.discourse.group/u/akashp)\
**Post date:** [August 12, 2025, 3:51pm UTC](https://org-roam.discourse.group/t/zettel-sequences-and-org-roam/3845/18 "2025-08-12T15:51:52Z")

</div>

You should just compile a version and install Emacs locally. My entire system is frozen for 6 months or more - relying on debian repos for org roam would put you in a lot of disadvantages - with manual maintenance you have the ability to patch and freeze subsystems. Unless you have specific needs to only use apt - the cost benefit calculus doesn’t align.

For hierarchical structuring - you may simply use a org file with headings implicitly encoding hierarchy - with links leading to the nodes and so on. This is the most easy way.

You might find you need to shuffle hierarchy in the future - if you hardcode then - you might find yourself in difficulty in shuffling and restructuring trivially.

Treat org roam as a digital system, where you can go to a particular place easily - whether hierarchically structured or horizontally linked to each other. The data doesn’t need permanent placing - you can contextualise.

---

<div class="post-metadata">

**Author:** ![nobiot](https://yyz2.discourse-cdn.com/free1/user_avatar/org-roam.discourse.group/nobiot/32/159_2.png) [@nobiot](https://org-roam.discourse.group/u/nobiot)\
**Post date:** [August 12, 2025, 5:26pm UTC](https://org-roam.discourse.group/t/zettel-sequences-and-org-roam/3845/19 "2025-08-12T17:26:05Z")

</div>

> [@akashp](#):
>
> For hierarchical structuring - you may simply use a org file with headings implicitly encoding hierarchy - with links leading to the nodes and so on. This is the most easy way.

This is also good advice. Since you use (some) headlines as nodes, this may be the easiest way.

I have my own way to achieve notes sequence away from Org-roam but this is purely to satisfy my curiosity to explore and also I am in the one-note-per-file camp (just my preference; I have no argument for or against use of headings as nodes).

---

<div class="post-metadata">

**Author:** ![pinacle](https://avatars.discourse-cdn.com/v4/letter/p/b487fb/32.png) [@pinacle](https://org-roam.discourse.group/u/pinacle)\
**Post date:** [August 16, 2025, 6:17am UTC](https://org-roam.discourse.group/t/zettel-sequences-and-org-roam/3845/20 "2025-08-16T06:17:19Z")

</div>

I use file naming instead of id naming, i.e. [20250808104328-AI.org](http://20250808104328-AI.org), [20231030202357-LLM.org](http://20231030202357-LLM.org), etc.
