Years ago, I had a similar idea, but never did anything with it. Look at DNs in LDAP (and X.400/X.500), they are based on attribute=value pairs. What about a filesystem in which filenames were collections of attribute=value pairs?
e.g. /home/geokon/program1/src/foo.c
could become:
user=geokon/program=program1/category=src/lang=c/name=foo
You could potentially decide that the order of the attributes is not significant, only the set of attribute-value pairs.
Downside: Too much typing. Although, maybe you could allow standard aliases for attribute names, so that:
(I think the attributes should be first-class filesystem objects, just like files are, as opposed to just text strings. Some of the values, e.g. an enumerated value like lang=c, should be first-class objects as well.)
Just write geokon program1 src c foo, and then just display a list of files that match.
You could for example also make fake folder/menus to navigate tags. (Which would just be appending filters.)
e.g. /home/geokon/program1/src/foo.c
could become: user=geokon/program=program1/category=src/lang=c/name=foo
You could potentially decide that the order of the attributes is not significant, only the set of attribute-value pairs.
Downside: Too much typing. Although, maybe you could allow standard aliases for attribute names, so that:
user=geokon/program=program1/category=src/lang=c/name=foo
could also be written as:
u=geokon/p=program1/c=src/l=c/n=foo
(I think the attributes should be first-class filesystem objects, just like files are, as opposed to just text strings. Some of the values, e.g. an enumerated value like lang=c, should be first-class objects as well.)
I also took some inspiration (in concept not syntax) from https://en.wikipedia.org/wiki/Faceted_classification such as https://en.wikipedia.org/wiki/Colon_classification
Being too different from what everyone else is doing would be the real killer, however.