16 votesDandre shared this idea ·
198 votesDandre supported this idea ·Dandre commented
As my personal opinion I would like to express that tags in filenames are not the only way to achieve cross platform integration. Sure one can use XMP, SQLite, XML, JSON, etc, etc, etc.
What are the common use cases here? What is the product trying to solve? Sure lots of people end up adding their feature requests for many things but fundamentally why do people want to use Tag Spaces instead of the millions of other apps out there?
For me personally I was looking for a personal Wiki (that is not out there, in file form because it has nice Markdown and HTML editing capabilities) where I can document various topics, tag them, and work off tags and not really care so much about folders. I want tag lookups to happen instantaneously and the current approach relies on the underlying filesystem to traverse folders and that can become slow. I also like to sync this with Dropbox (and potentially other cloud drives).
Having a data solution that would index tags for instant lookups would be very beneficial and that might mean that having tag names in filenames are very restrictive. In this case having something like SQLite (with full text indexing extensions) you can get that instance lookup performance. SQLite is a single file solution that is very cross platform and can sync very well with other cloud drives and so filenames no longer have to change.
Downside is that the TagSpaces is not aware of outside changes like it is now and any changes made on the outside will have to be updated by the user when opening up TagSpaces. Is that a train smash? Probably only if you had to work with hundreds of files and you had the opportunity to insert tags programmatically and now you have to do that manually. Is there a use case for that? I doubt that because why would you need to use Tag Spaces then? Are there people who do stuff like that? That might require an import solution for this solution (that's probably where the tagname in filename was useful or having some XML sidecar option). But then again if you do stuff programmatically, you might as well update the SQLite DB yourself (with some guidance of course).
It might also be beneficial to have an Tag export feature to XML/JSON or something to know outside of TagSpaces what the tags are for files.
It is OK to differ from me, I'm not just mentioning problems but also a potential solution for the various scenarios. Hopefully this might empower the developers in their quest to cater for the masses.Dandre commented
I would like to support "Insane Tester" in that one shouldn't modify the filename of the file that you are tagging.
It causes issues with your cloud drive software (I've already encountered it the first time I've used it) in that if you add/remove tags the sync'ing tool can get confused and you end up with multiple copies of the same file except that the filenames are different.
Secondly on a platform like Windows, you're bound to run into the MAX_PATH problem where software might throw an error and when you inspect the logs it is the age old Windows 32 API problem of "you're not allowed to have more than 248 characters in a filename". You definitely don't want this problem to happen as you start adding tags.
Also I think having it configurable is also a good idea so that those who want the filename containing the tag still can have it but I definitely would prefer some sort of side-car meta-data file. It can even be as simple as having a file with the same name as the file you are tagging, just with a specific file extension which has simple text lines containing the tag names (for all I care).