(sorry to repost... forgot to log in...)
Another one to add to the list is HTaggingOLFS (Hierarchical Tagging Overlay File System). HTaggingOLFS adds tagging to an existing hierarchical directory structure and provides "AND" searches of tags.
HIERARCHICAL - most of the tagging file systems (including those noted in parent) were flat - all the files were stored in a single directory. HTaggingOLFS adds tagging capability to an existing file hierarchy.
TAGGING - fairly self explanatory - files can be "semantically tagged" with arbitrary words or phrases and then the entire file system can be searched by those tags.
OVERLAY - HTaggingOLFS does not implement a file store - It is a "loopback" file system that passes actual file operations to an existing hierarchical file system. HTaggingOLFS simply adds tagging and searching capabilities.
HTaggingOLFS implemented using FUSE, Perl and SQLITE. It's more of a "proof of concept" as the implementor (me) isn't a professional or even really a casual developer -- but is more of an old-school "hacker" cobbling together bits and pieces from here and there to achieve his ends. It ain't pretty, it is kind of elegant, it "generally works". Standard disclaimers apply. I wouldn't use it for commercial production, but for the purposes of the original poster (which is essentially what I use it for), it should work fairly well.
For example, if /mnt/hugeMediaRepository was the mount point of the Overlay File System, Blade Runner could be stored as follows: /mnt/hugeMediaRepository/Movies/scifi/BladeRunner:ScottRidley:HarrisonFord:RutgerHauer:SeanYoung:1982:RatedR.m4v
at each upper level of the directory hierarchy, hugeMediaRepository/Movies/scifi/ you would see additional "virtual" subdirectories @ScottRidley @HarrisonFord @RutgerHauer @SeanYoung @1982 @RatedR - based on the tags created when the file was saved. Descending into one of these directories searches for files containing those tags and presents the (1) files in the current real directory associated the tags in the file path, (2) subdirectories that contain files associated the tags in the file path, and (3) "virtual" subdirectories based on tags associated with the tags in the file path.
For example,
If these two files existed: /mnt/hugeMediaRepository/Movies/scifi/BladeRunner:ScottRidley:HarrisonFord:RutgerHauer:SeanYoung:1982:RatedR.m4v /mnt/hugeMediaRepository/Movies/drama/AmericanGangster:DenzelWashington:RussellCrowe:ChiwetelEjiofor:RatedR.m4v
listing the directory /mnt/hugeMediaRepository/Movies/@ScottRidley/ would show:
@HarrisonFord/
@RutgerHauer/
@SeanYoung/
@1982/
@RatedR/
@DenzelWashington/
@RussellCrowe/
@ChiwetelEjiofor/
scifi/
drama/
More info can be found at: http://code.google.com/p/htaggingolfs/