What does "link as first-class citizen" really mean?

The About page lists the philosophies of Obsidian:

  • Local-first and plain text;
  • Link as first-class citizen;
  • Make it super extensible.

At first I thought “Link as first-class citizen” simply means it will focus on links more than other software. But then I found out that First-class citizen has another meaning:

In programming language design, a first-class citizen (also type, object, entity, or value) in a given programming language is an entity which supports all the operations generally available to other entities. These operations typically include being passed as an argument, returned from a function, and assigned to a variable.

So what meaning it is used? Are there any more insights than just a software with link suggestion and a graph?

2 Likes

I also had the expectations that links would be usable anywhere, that you could link to nearly anything, that link could get attribute, semantics, usable in search expression, something like the main focus on the application. It turns out that links are just links, like you find on any wiki or any webpage. The only “thing” but that you find in most programs is from the target note to be aware of what links points to it. To be honest i’m a bit underwhelmed by “backlinks” to be consiered anything close to a “first class citizen”.

5 Likes

In my understanding, the database that is born for links is graph database. Obsidian uses IndexedDB, which in my understanding is not a graph database. I understand that there are features that you may want to compromise. But that leave a question whether links are indeed the most important feature or not.

How Is a Graph Database Different from a Relational One? | Towards Data Science

FWIW,

The link as first class was a reference to wikilinks, backlinks, outgoing links and the graph view. That’s all. There’s no deeper or CS-related meaning behind it.

2 Likes

Thanks for the reply. That’s clear a lot.


FWIW, the question was asking about an old About page. It has been changed. The current one is:

Yours

We believe that everyone should have the tools to think clearly and organize ideas effectively. That’s why our tools are free for personal use.

Durable

We believe that your data should be future-proof and easily accessible, no matter where you are. That’s why we use simple, open file formats that prevent lock-in and ensure that your data can be preserved for generations to come.

Private

We believe that your thoughts and ideas belong to you and deserve complete privacy. That’s why your data is stored on your device, inaccessible to us. When you use our online services, your data is protected with end-to-end encryption for maximum security.

Malleable

We believe that tools should adapt to your way of thinking, not the other way around. That’s why we design our tools to be highly customizable and extensible, so you can shape them to your unique needs.

Independent

We believe in staying true to these principles. That’s why we are 100% supported by our users, not investors.

With this new manifesto I don’t see where the team state their direction on any data structure

I am not sure I understand what you mean by that. Our commitment is to try to have the markdown notes contain the data (the markdown files being the source of truth so that your notes are portable). Sometimes, we use internal data structures to speed up some operations (like the fuzzy search for a note), but that is an implementation-level concern.

1 Like