Talking Point: Could Linux Abandon Directories In Favour Of Tagging?
For a fairly scruffy looking guy, I have a surprisingly healthy approach to organising my files. However, I'm constantly pushing up against the limitations of a system that is based around directories. I'm convinced that Linux needs to make greater use of tagging, but I'm also beginning to wonder if desktop Linux could abandon the hierarchical directory structure entirely.
Why is it that web based technology such online bookmarking makes far greater use of tagging than the Linux desktop does? Directories for files are based on the way that humans have always organised items in the real world, using categories and sub categories. Thanks to powerful computers and cheap, plentiful storage, tagging now offers a method of storage that isn't based on placing files in one place or another.
The word processor file that makes up this article is stored /documents/articles/linux_journal/ but it could be even more efficiently organised if I could easily tag it as “documents”, “articles”, “linux journal” as well as “op ed”, “daft ideas”, “tagging”, “linux” and “web posts”. That way I could find it by browsing through alll of the web posts I've made this year or all of the op-ed peices I've ever written.
Some organisational situations illustrate the weakness of the hierarchical approach. For example, if I download some independent electronic dance music, where do I place it within a hierarchical system file system? Does it go in /mp3/dance/electronica/independent or /mp3/independent/electronica/dance? Which system works best depends on whether the significant factor is that it is electronica or independently produced. This is where tagging comes into its own as it allows objects to be placed in more than one category at once.
When dealing with files, there's a distinction to be made between the files that I normally care about and those that I only care about when I'm fiddling around inside Linux's innards. The default setup of most Linux distributions acknowledges this distinction as the files are stored either:
- outside of the /home directory (files that I don't care about most of the time)
- inside the /home directory but hidden (more files that I don't care about most of the time)
- inside the /home directory and visible (these are the files that I care about)
It's this last category of files that is ripe for being moved over to a tagged system. Abandoning the directory system outside of the /home folder would mean not only designing a new operating system but also designing a new set of applications.
Application awareness could make tagging more useful, because as it stands, when I'm opening files or saving them, I can't use tagging most of the time. For one thing, application awareness could reduce the tagging workload. A word processor could set the tag of a file as a “text document” and perhaps offer me some pertinent tags from the system tag cloud to go with it. When I download a file within Firefox, I bet that it would be fairly easy for the developers to make it tag the file as “downloaded”. That way it keeps that information when I also decide that it belongs in the “video” and “trailer” “film” “science fiction” “have watched” categories.
Most people probably have a fairly fixed idea of what they think a file browser is, but a large proportion of applications are actually specialised file browsers. Why couldn't a tag-aware file browser suddenly switch into music browsing mode as soon as I select the music file tag? If it automatically switched to the details view, added an extra pane on the left hand side for an album view, gained a time elapsed counter in the status area along with some transport controls, you'd have a fairly good music player. Email clients are also specialised file browsers. In the classic three pane layout, the left area represents the folders, the top right hand pane shows the files, and the bottom right pane is a viewer. Click on the message and it opens a slightly specialised text editor.
Ubiquitous tagging for normal desktop use would be a way for desktop Linux to get ahead of the competition, and I have an idea that it would particularly appeal to people who weren't computer experts. Bear in mind that non-experts don't have any difficulty understanding tagging on the web.
I see the two main barriers to greater adoption of tagging on the desktop as the lack of a unified standard for metadata and the aforementioned lack of application awareness. I wonder which will be the first mainstream distribution or desktop environment to experiment with removing directories and going 100% tagging for end users?