File system that uses tags rather than folders?

TagsFilesystems

Tags Problem Overview


My files are a mess, I try to structure them into folders with names that describe what they are in a recursive class break-down sense but later on I have trouble finding the file again when I go looking for it (the one file can possibly exist in many folders).

What file system will allow me to find my files by a combination of tags instead of using folders?

If there was such a file system, I'm not sure how OSes would cope, being so deeply dependent on the folder system. I came across tag2find, which isn't too bad; it solves my problem with finding stuff for now but it is an application, not a file system.

Tags Solutions


Solution 1 - Tags

Here are some file systems which I found using google.

TagFS - "Tag Semantics for Hierarchical File Systems" paper by Stephan Bloehdorn and Max Völkel, 2006 http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.60.4187

dhtfs - "Tagging based filesystem, providing dynamic directory hierarchies based on tags associated with files" a usable implementation, last release 2007 http://code.google.com/p/dhtfs/

Tagsistant - "A reasoning semantic filesystem for Linux and BSD" project under active development http://www.tagsistant.net/

Leaftag - "Tagging for the Linux desktop" another implementation, last release 2006 http://www.chipx86.com/w/index.php/Leaftag

On integration with OSes, I dont think it should be that difficult. OSes are deeply dependent on file system hierarchy's but tag based file system can mimic directory structure. For example in a tag based file system the path /etc/init.d will give all the files that are tagged with exactly two tags i.e 'etc' and 'init.d'. For files which are tagged with other tags as well as these two tags, their extra tags can appear as directories inside /etc/init.d. If there is a file a.txt with three tags i.e 'etc', 'init.d' & 'asdf' then 'asdf' will appear as directory inside /etc/init.d and full path of a.txt will become /etc/init.d/asdf/a.txt.

Solution 2 - Tags

I'm the author of the Linux program TMSU that lets you tag files and view them in a tag-based filesystem.

Here is some example usage:

$ tmsu tag track.mp3 music genre=indie-rock good year=1999
$ tmsu tag melody.mp3 music
$ tmsu tag DC123.jpg photo landscape country=italy year=2014
$ tmsu files music year = 1999
./song.mp3

And the virtual filesystem:

$ mkdir mp
$ tmsu mount mp
$ ls mp
query  tags
$ ls tags
country  genre  good  landscape  photo  music  year
$ ls tags/music
genre  good  track.1.mp3  melody.2.mp3 year

The numbers in the filenames are identifiers which are there to keep the filenames unique. These are symbolic links back to the files' original locations.

$ ls tags/music/good  # you can drill down
genre  track.1.mp3  year
$ ls "query/music and good"  # this directory gets automatically created
track.1.mp3

It's still in active development. At time of writing (Oct 2014) 0.4.2 is available but I'll be releasing 0.5.0 soon.

Solution 3 - Tags

What you are asking for is a Database File System. I know of one experimental implementation for Linux called DBFS. Microsoft started developing Windows Future Storage (WinFS) - it was planned to ship with Vista but due to technical problems the project was delayed and as far as I know finally canceled. NTFS is also capable of storing metadata for files but not to an extend of a full featured database file system.

The integration of such a file system into an operating system should not be that complicated for the core of the operating system - it can simply stick with the hierarchical model. The complex part is the (graphical) shell that must expose the structure and capabilities of the file system to the user.

Solution 4 - Tags

Vista and Windows 7 support tagging of files. See this article

Solution 5 - Tags

Try tagfs. It's a fuse based user space file system. It can show tagged directories from a source directory in a tag filter view.

E.g. let's say you have a directory 'vacation india' which is tagged 'india' and 'photos' and a directory 'vacation spain' tagged 'spain' and 'photos'. You can filter all your photos by entering the path '/my_mountpoint/photos'.

Directories are tagged through a simple text file. A file named '.tag' in the directory contains the tags. Multiple tags are separated by newlines.

Solution 6 - Tags

I came across this question while asking myself the same question about filesystem file tags. I then came across this application for Windows XP/Vista called TaggedFrog that may do the trick. Haven't tried it yet, but it looks promising.

Not looking forward to going through 1000s of files though! At any rate, I'll be forced to upgrade to Win7 at some point and can try its native tagging.

Solution 7 - Tags

I have been thinking also about a tag based file system a long time. Has anybody thought about more radical and simple approach? To forget folders completely (simulated folders only for compatibility reasons for programms), and put all tags directly into the file name.

(Classic File Name)Tag1_Tag2_Tag3.... .(File extension)

Mydocument_tag-based-file-system_tags_file-system_stackoverflow_folder_file-name_tagfs.txt

I always like to put as much information as possible in the file name. You can find everything in millions of files on every possible OS.

The only limit is the different file name length in evey OS, and it gets messy with current systems.

An advanced OS with could access a file like this: Mydocument.txt And the Tags can be edited in the lowest level of the OS, like changing the Filename today. If there is suddenly another Mydocument.txt it is auto renamed to Mydocument(2).txt and so on.

I know this idea is not without additional problems, not even mentioned here.....

But the Idea is about to store tags in the most basic low level possibility, that can be accessed from ALL past and future file systems. And what all FS have in common is the file name.

Solution 8 - Tags

Without having tried them or seen them in the wild, there are for example

Solution 9 - Tags

There is TagsForAll for windows. It is a file manager based on tags. Tags can have hierarchical structure. User interface is very simple but nice. Free version fully functional and save tags in database, Pro version save tags also within NTFS stream to a file.

Solution 10 - Tags

I found the UI design of Elyse is wonderful. But it's more a static system that it can't watch folder and tag new file with a default tag automatically.

Solution 11 - Tags

I don't think had (has) tagging support per se but BFS supports some pretty cool metadata functionality.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionclinuxView Question on Stackoverflow
Solution 1 - TagsbinWView Answer on Stackoverflow
Solution 2 - TagsPaul RuaneView Answer on Stackoverflow
Solution 3 - TagsDaniel BrücknerView Answer on Stackoverflow
Solution 4 - TagsJohann StrydomView Answer on Stackoverflow
Solution 5 - TagsMarkus PeröbnerView Answer on Stackoverflow
Solution 6 - TagsKJHView Answer on Stackoverflow
Solution 7 - TagsUntitledArtistsView Answer on Stackoverflow
Solution 8 - TagsreletView Answer on Stackoverflow
Solution 9 - Tagshet_passagierView Answer on Stackoverflow
Solution 10 - TagsmissspriteView Answer on Stackoverflow
Solution 11 - Tagspr1001View Answer on Stackoverflow