Got the idea from another topic, drag-save. Drag-save has been a 'trademark' feature of RISC OS, why not create a new one for Haiku? What's Haiku's usability trademark? Of course, attributes. There has been some talk about Sorting Chute (http://www.haiku-os.org/glass_elevator/rfc/sorting_chute), why not Saving Chute? Some use cases to illustrate...
Say, I've recorded an audio file and hit Save button. I'll get prompted for all relevant audio metdata I can fill in and the Chute puts the file where it belongs based on its properties. For example:
Save as... ARTIST: Me, Myself & I Trio TITLE: New Track Recorded on dd.mm.yyyy YEAR &c... Format:MP3 Filename: ~/music/mp3/%Artist/%Title.mp3
Note that the filename part is predefined along with variables. In this way the metadata doesn't get overlooked and the file will be immediatly visible in all queries.
Another example, I may have digged out an old document from projects' archive. I wish to reuse it for a new project:
Save as... TITLE: Letter of Introduction CATEGORY 1: oldproject CATEGORY 2: papers KEYWORDS: exhibition photography Format: RTF Filename: ~/projects/%category_1/%category_2/%title
The attributes would be already filled in so I would need only to replace 'oldproject' with 'newproject' and I'm done! The file is put nicely to the new project folder.
Yes, I know, there aren't many attributes for text files but there could be (look at document properties in MS Word). But even with no extended attributes for file type the chute should know where to place specific file types, for example, text documents would be placed to ~/documents by default. This might be also the case if I don't wish to provide any attribute values.
To keep it more simple, the filename and format part are hidden from the user as the file is saved using default format and to default location based on attributes. Metadata fields could also have some kind of autocomplete feature.
This functionality could also be extended to the sorting chute itself. Say, the preferences include some rules using attribute-based variables. Now, if some file from the Internets is dropped to the chute, user would be prompted for missing attributes. An easy way to gather materials for a project. And both chutes could share the preferences.