user-defined properties and values, ideas

Off-topic posts of interest to the "Everything" community.
Post Reply
jimspoon
Posts: 194
Joined: Tue Apr 26, 2011 11:39 pm

user-defined properties and values, ideas

Post by jimspoon »

This will be TL:DR for most but if anybody does, feedback appreciated!

I've long wanted to be able to assign many user-defined properties and values to my files, and then find them on the basis of these property values. When I look at the directory names and file names I use, I realize that they are really user-defined properties and values, and these could be stored and searched in a much better way.

But as of yet, there's no satisfactory place to put these properties and values, no easy method to put them there, and no very easy method to search based on these property:value pairs. (Everything is the closest thing to it, by far.)

Consider these possibilities for locations for the properties and values:

Primary data streams - apps aren't prepared to deal with or preserve such "foreign" data in their data files.

Alternate data streams - there's no standard and efficient way to put user-defined properties and values in ADS. Plus, alternate data streams are preserved only in NTFS to NTFS transfers - they are not preserved when a file is copied to a non-NTFS filesystem, sent via email, through a cloud service, or backed up to a NAS.

Sidecar files - for example, for every tagged file, Tagspaces can put a file containing that file's tags in a hidden sidecar folder. The user would have to copy the sidecar tags file along with the data file, but it at least the tags would not be LOST as in the case of alternate data streams. For example, the sidecar file could be copied to a NAS along with the data file. From what I can see so far, Tagspaces "tags" are not property-value pairs I could put in an Everything column.

Path and File Names - "Properties" and values can be shoehorned into directory names and file names. With a registry modification, a group policy, and a "manifest", the Windows API can support pathnames up to 32,767 or thereabouts. But still, each directory or folder name in the path must be less than 256 (?) characters long. And, more importantly, the Windows Shell does not support paths > 256 characters. For example, the standard File Open and File Save As dialogs can't handle paths > 256 characters. If the Windows Shell and other apps would support long paths adequately, I might assign properties and values by putting them into long paths as follows; C:\property name\value\property name\value\property name\value\property name\value\ and so on for as many properties and values as I like. It wouldn't really matter what order I placed the properties and values, Everything could find them! Everything makes it fairly easy to extract such "embedded" properties and values and put them into their own column where they could be sorted. And, I could use Everything's Advanced Rename as a way to change these embedded properties and values.
therube
Posts: 5056
Joined: Thu Sep 03, 2009 6:48 pm

Re: user-defined properties and values, ideas

Post by therube »

(
the standard File Open and File Save As dialogs can't handle paths > 256 characters. If the Windows Shell and other apps would support long paths adequately
Heh. In one my posts today, I was thinking about throwing something in there about the abysmal state of LFN in Windows, & how, here it is, only 2024, & with Windows 11, & we're still in such an abyss. But hey, at least Windows Calculator works [sometimes :evilgril:].
)
jimspoon
Posts: 194
Joined: Tue Apr 26, 2011 11:39 pm

Re: user-defined properties and values, ideas

Post by jimspoon »

therube wrote: Thu Aug 08, 2024 7:21 pm Heh. In one my posts today, I was thinking about throwing something in there about the abysmal state of LFN in Windows, & how, here it is, only 2024, & with Windows 11, & we're still in such an abyss. But hey, at least Windows Calculator works [sometimes :evilgril:].
I'll never understand how some things don't get fixed. I think it was 8 years ago that Microsoft enabled support of long paths in the Win32 API (if the registry modifications were enabled), but still the Windows Shell has not been updated accordingly! I guess it's not just the shell, it's third-party apps too. My preferred file manager (xplorer2) still won't do a copy or move that produces a path > 256. (I've tried to get used to Directory Opus but I haven't converted yet.) I just did a quick Google to see what other filesystems support. 255 seems to be a pretty standard max length for a file or folder name, but just for example, ext4 seems to support paths up to 4096, maybe without any hacking required.

I also think Microsoft could provide a standard method for allowing users to define their own file properties and values in a robust way, that would persist through email/cloud/cross-filesystem transfers. I guess not enough people see a need for that like I do.
NotNull
Posts: 5517
Joined: Wed May 24, 2017 9:22 pm

Re: user-defined properties and values, ideas

Post by NotNull »

jimspoon wrote: Wed Aug 07, 2024 5:59 am Consider these possibilities for locations for the properties and values:
+ Central database (or database per disk/volume)


jimspoon wrote: Wed Aug 07, 2024 5:59 am Primary data streams - apps aren't prepared to deal with or preserve such "foreign" data in their data files.
This is what MS Office does, docx and xlsx files are basically zipfles, containing XML files for content, properties, etc.
Or mp3 files, for example.
(I guess I don't quite understand the point ..)
jimspoon
Posts: 194
Joined: Tue Apr 26, 2011 11:39 pm

Re: user-defined properties and values, ideas

Post by jimspoon »

NotNull wrote: Fri Aug 09, 2024 12:28 pm + Central database (or database per disk/volume)
Yes, you can certainly put custom properties/values in a central database - but then you have the problems of how the metadata continues to be linked to the file when the file is moved or renamed or copied. Or sent via email/cloud/NAS/other filesystem.
NotNull wrote: Fri Aug 09, 2024 12:28 pm This is what MS Office does, docx and xlsx files are basically zipfles, containing XML files for content, properties, etc.
Or mp3 files, for example.
(I guess I don't quite understand the point ..)
That method is good for preserving the connection between data and metadata (properties/values). But you are limited to the properties and values allowed by the filetype specification, or the app developer. And these tend to pertain to the technical aspects of the file (for example, the length of a song), not so much to the subject matter (for example, a vendor name, or an account from payment is made) Anything we might put into a file or folder name, I'd like to put into some kind of property/value store. which Everything could display as a column with sortable values. And even if a filetype specification or an app developer allows the user to add custom properties, that would not be available for other filetype specifications. I'm thinking of something that would allow adding the same custom properties/values to any file type.

A couple of articles of interest:
Designing better file organization around tags, not hierarchies - https://www.nayuki.io/page/designing-be ... ierarchies
A novel idea for a new Filesystem - Storing facets as key-value pairs for individual files - https://www.nayuki.io/res/designing-bet ... system.pdf

From a brief look, Microsoft Sharepoint seems to allow for custom file properties/value, but i think it runs only on Windows Server OS. https://learn.microsoft.com/en-us/share ... d-metadata
Post Reply