Skip to main content

One Folder, Many Tags

Updated 5 min readMarkdown

A reader finishes a book about the history of codebreaking and has to put it somewhere. History, or computing? On a physical shelf the question answers itself: the book goes in one place, and every other place it might have belonged loses it. A digital shelf seems to dissolve the problem — copy the entry, tag it twice, done. But the file underneath still lives at exactly one path, and that fact quietly decides how the whole shelf has to be built.

The shelf actually answers two different questions, and they need different shapes. "Where is this filed?" has one answer per book, because a file sits in one directory and nowhere else. "What is this about?" has as many answers as the reader cares to give, because a book about codebreaking is about history and mathematics and war at the same time. Squeeze both questions into one organisation and one of them breaks: file by folder alone and the codebreaking book vanishes from every shelf except the one you chose; tag everything and nothing tells you where the file itself lives, what to back up, or what disappears when a directory is removed.

The surprising part is that, under the surface, folders and tags are stored the same way. There is one table of nodes and one table of links between books and nodes. A folder is a node, a tag is a node, and attaching either to a book means adding one row to the same link table. So the difference between "one folder" and "many tags" is not in the storage at all. It is in what enforces the rule, and the enforcer is different in each case.

For folders, the enforcer is the filesystem. A file cannot be in two directories at once, so the scanner, walking a directory tree, links each book only to the node for the directory that directly holds it — never to the parent directories above it. The tree display then does the rest of the work: opening a folder shows everything beneath it, because the count shown beside a folder adds up its whole subtree. The book is filed once, and the tree makes that single filing visible at every level above it. That is also why two source directories are not allowed to overlap: registering a folder inside an already-registered folder would give the files inside it a second home in the tree, and the model has no honest way to show that.

For tags, there is no enforcer, and that is the point. The link table puts no limit on how many tags a book carries, and removing a tag deletes nothing but the link. A tag is a claim about what a book is about, and claims are cheap to add, cheap to retract, and never touch the file. The same delete gesture therefore means two different things depending on what you click: delete a folder and its entire subtree of nodes goes with it, along with the shelf entries for the books filed there; delete a tag and the books stay exactly where they were, only unlabelled. A reader who treats the two as interchangeable will be surprised by one of those outcomes sooner or later.

Between the two sits a third case that shows how easily the distinction blurs. A category — a shelf section like "fiction" or "reference" — is presented as one-per-book, like a folder. But nothing below the interface enforces that. The link table would accept a second category as readily as a second tag. So "one" here is a convention kept by the interface, not a guarantee kept by the data. Conventions hold until the day some other path into the data forgets them, and then the shelf quietly holds a book in two categories with no error to explain it.

Copying a file into a second folder does not fix any of this. The scanner keys each shelf entry to its path, so the copy shows up as a second entry, not as one book with two homes. Notes, reading position, and translation state belong to the entry, not to the content, so the two copies drift apart as soon as one of them is opened. The folder system never promised to track a book across copies; it promised to show where each file is, and it keeps that promise by refusing to pretend one file is two.

That is the shape of the trade. Folders are for custody: one place, enforced by the disk, with deletion that bites. Tags are for description: many labels, enforced by nothing, with deletion that costs nothing. A shelf needs both because a reader needs both — to know where a book is, and to know what it is about — and it needs them kept apart, because each one breaks when asked to do the other's job.

About the author

  • Writing about ebook technology.

No comments yet. Be the first to comment.