If you could design a file system from scratch, would you have directories to organize the content? Or would you prefer to tag your files? Folders and files are what we see and can relate to very easily in the physical world. You store all your paperwork (files) in a folder, keep the related folders in a particular drawer of a cabinet. Unfortunately, a file cannot be inside two folders at the same time. You could go ahead and cross-reference your files. That, my friend is a tag!
The fundamental idea of a tag based FS is you add multiple tags to a file and add multiple files to a tag. You do not bother about where the files are stored. Why do you need to know, as long as you can retrieve them in a convenient way? In a sense, a tag FS sits somewhere between folders and a database.
What is the advantage of having a tag based approach? How do you access your files without knowing where they are stored?
Lets say you are looking for your vacation pictures. Open your file explorer and put the keywords of the picture you want.
While Photos
Goa
will show you pictures from your Goa vacation,
Photos
Goa
2010
reduces it your last Goa vacation photos.
See all your vacation pics of 2010 with Photos
2010
or jump across to the flight ticket and hotel booking details with Goa
2010
Documents
.
There are multiple ways to reach to a file and that is a key problem a tag based system tries to solve. Should you store your source code under “src/technology/module” or “src/module/technology”? It doesnt matter anymore. You could reach out to your files in an intuitive manner - based on its attributes that you remember. An intelligent system that could automatically and semantically tag your files makes life a lot more easier.
The tagging feature is already present in most photo management apps like f-spot and picasa, but its time that the support comes from the filesystem for all the files. Google caused quite an uproar when it introduced tags as a replacement for directories to organize content in gmail. Looking back, they did the right thing.
A tag based FS opens up a whole new avenue and brings along its share of challenges too. We’ll take a detailed look at them in the follow-up posts.