This isn't quite a match for what you're thinking, but if working with files that support metadata is of interest,
exiftool can view and change the metadata on a large number of file types, including PDF files. For a full list, see
I've used it to create and change metadata on PDFs on numerous occasions. For example:
exiftool -Title="My PDF" \
-Description="my pdf about various things" \
-Keywords="miscellanea, nonsense" \
-Creator="also me" \
Now here's where it becomes more closely related to your idea. The
Keywords metadata field (or any other field for those file formats which support the creation of arbitrary fields - many do) can be used to store your tags in the files themselves, allowing the tag symlink farm to be automatically maintained by a script.
Alternatively, a script could maintain a database (flat-text like CSV or similar, or an SQL database like
sqlite) containing a list of filenames (with full absolute path), filesystem metadata (timestamps, size, perms, etc) and their tags. Other scripts could be written to search this database and return the result(s) in a useful format.
vi $(search-tagged-files --date "last sunday" --keywords thesis)
localc $(search-tagged-files --keywords budget,2017 \
NOTE: the single biggest drawback to anything like this is the enormous amount of work it would take to maintain the tags for each of the files. Some of this could be automated, but much of it would be tedious, time-consuming manual work. And that's ignoring the design and development time to come up with a system to do it with.
None of the programs used to create or edit files would be in any way integrated with a file management system like this, and neither would standard tools like
You could write wrapper scripts for many of them that were aware of this tags database and updated it automatically, but I wouldn't even know where to begin doing that if you used a GUI file browser to move, copy, open files etc...you'd probably have to write your own file browser.
The work involved is probably the biggest reason why most people who have had ideas like this have ended up thinking "I'll just use a well-organised directory tree instead". Even the work required to write the code to manage the documents is is enormous, and the work to manage the metadata for each file is even larger - it's generally only worth the effort for very large organisations with at least tens of thousands of documents to keep track of.
This isn't a new idea, there's been a lot of research and development on ideas like this. One of the names for it is Document Management System.