LWN.net Logo

Shuttleworth: Unity shell will be default desktop in Ubuntu 11.04 (ars technica)

Shuttleworth: Unity shell will be default desktop in Ubuntu 11.04 (ars technica)

Posted Oct 26, 2010 1:11 UTC (Tue) by rgmoore (✭ supporter ✭, #75)
In reply to: Shuttleworth: Unity shell will be default desktop in Ubuntu 11.04 (ars technica) by Arker
Parent article: Shuttleworth: Unity shell will be default desktop in Ubuntu 11.04 (ars technica)

The thing that's broken about folders/directories is that they impose a hierarchical model of file relationships that doesn't necessarily represent our mental model of their relationship. Each file has many properties, and I may care more about one property at one time and another property at a different time. If I sort them into a directory structure, that inherently imposes one specific organization on them that may make it difficult to find what I want if it turns out that I care about a different thing. That may not be a big deal if I'm looking for one specific file, but it can make life very tough if I'm looking for a whole class of files that may be scattered across a whole directory structure.

As an example, I'm a photographer. I tend to sort my photographs into folders first by the year when I took them, then by a general subject (e.g. pictures I took when hiking), then by more specific criteria depending on the subject. That's OK when I'm looking for specific pictures- I can narrow things down a lot by remembering an approximate date and subject- but it's severely limiting if I want to do something more.

I may want to do something more complicated, like search for all photos taken in a specific location, or taken with a particular lens, or with a shutter speed slower than 1s, or even all pictures taken within 1/2 hour of sunrise. Those are all criteria that I might want to consider using, and they're all things that I potentially could search on based on the metadata within my images*. But I obviously can't sort my pictures into folders according to all of those criteria. The only practical approach is to have really good support for metadata searches. There are currently programs designed specifically to support that kind of searching for photographs, but it would be better if it were supported at the OS level.

*My camera can automatically geotag my images, which would let me sort them by location or even let me calculate local sunrise time and see if they were taken close to sunrise.


(Log in to post comments)

Shuttleworth: Unity shell will be default desktop in Ubuntu 11.04 (ars technica)

Posted Oct 26, 2010 10:38 UTC (Tue) by Seegras (subscriber, #20463) [Link]

For pictures, the situation is quite nice, with all that EXIF. And for audio-files there's ID3.

But where are the tools to edit EXIF-tags in movies?

Shuttleworth: Unity shell will be default desktop in Ubuntu 11.04 (ars technica)

Posted Oct 26, 2010 10:55 UTC (Tue) by job (guest, #670) [Link]

While the EXIF indexing is probably the right solution for you, I want to object to your notion that somehow can't sort your pictures into directories according to all of your criteria.

There is fundamentally no problem with this. A file can have a number of names and positions in a traditional directory hierarchy. There are a number of practical issues, such as that you have to delete all instances of the file to actually delete it which may not fit a photography collection, but there are issues with any system.

Shuttleworth: Unity shell will be default desktop in Ubuntu 11.04 (ars technica)

Posted Oct 26, 2010 16:12 UTC (Tue) by sorpigal (subscriber, #36106) [Link]

What you're saying is that we can work around the problem with the current system.

Shuttleworth: Unity shell will be default desktop in Ubuntu 11.04 (ars technica)

Posted Oct 26, 2010 18:26 UTC (Tue) by rgmoore (✭ supporter ✭, #75) [Link]

That's not a very practical solution. Pre-sorting into a whole set of directories according to my different criteria is theoretically possible, but has some severe limitations. Directory structures work best when the metadata in question takes on a relatively limited set of values. So it will work fine if I want to sort based on traditional photographic criteria, like lens, aperture, shutter speed, focal length, etc. But that type of sorting breaks down for values like latitude, longitude, or time, where there are literally millions or billions of possible discrete values.

There's also the a matter of practicality. Yes, I can theoretically create a whole set of parallel directory structures each of which serves as a a way of sorting according to different criteria. But the more different criteria I use, the more cumbersome that solution gets. Just adding and deleting files gets to be a pain, since it involves creating or deleting numerous links. You'll wind up needing to create a whole set of new tools to create and maintain your fancy link structure.

And all you're really doing is duplicating the functionality of a database- probably badly. At some point, it gets easier just to have the computer maintain a proper database rather than trying to do it with links. Once you've built the tools to maintain the database, a whole world of other possibilities opens up. You'll be able to use standard database queries to look for your files. Adding new file types only involves figuring out what kind of metadata they might want to use. There's a lot more upfront effort, but the potential payoff is huge.

Shuttleworth: Unity shell will be default desktop in Ubuntu 11.04 (ars technica)

Posted Oct 26, 2010 11:36 UTC (Tue) by sorpigal (subscriber, #36106) [Link]

What we need to fix these problems is file tagging via extended attributes. In addition to the 'canonical' file path each file could have a tag cloud of simple text labels, which might if well integrated into a UI come to replace hierarchies for most people's organizational needs.

I was looking around the other day for this because I wanted to start tagging images that are not always JPEGs and I figured someone must, by now, have developed a scheme for using extended attributes for file tagging. What I have found so far is that nothing for this is published anywhere, even if some application or other may implement it, and there's certainly no common standard.

On a *nix system a hard link acts a lot like a tag: One or more names is associated with a file. The down side to hard links is that adding a lot of them, like 20 or more, for a single file purely for the purpose of 'tagging' it becomes a management nightmare. Extended attributes would work nicely for simple label tagging, though it would be nicer if tags could be typed so that dates (date taken, etc) could be stored this way as well.

If file tools knew about tags in extended attributes then it would be a simple matter to add a few to any file and have a VFS which lets me see one directory per tag on any file on the system and drill down to specific files. Some indexing would be required for that, naturally, but even without it we could certainly all benefit from moving MP3 and JPEG tags into metadata where they belong, writing them back to the files only when we're ready to transfer across the network.

Shuttleworth: Unity shell will be default desktop in Ubuntu 11.04 (ars technica)

Posted Oct 26, 2010 14:37 UTC (Tue) by jackb (subscriber, #41909) [Link]

"There are currently programs designed specifically to support that kind of searching for photographs, but it would be better if it were supported at the OS level."

You mean something like a filesystem that supported arbitrary file metadata and exposed it in a way that made it accessible to all programs without needing to go through a separate API?

Shuttleworth: Unity shell will be default desktop in Ubuntu 11.04 (ars technica)

Posted Oct 26, 2010 19:13 UTC (Tue) by rgmoore (✭ supporter ✭, #75) [Link]

Honestly, I'm more of a user than a developer, so I don't really care that much about implementation details. What I know as a relatively sophisticated user is that my files are automatically generated with a ton of useful metadata, but that the system does a really poor job of taking advantage of it to make my life easier. I don't know enough about the potential tradeoffs to know if it's better handled by the kernel maintaining extended file attributes or by having the desktop environment keep it in a relational database. What I do know is that there's lots of data that we're not taking full advantage of, and that seems very wasteful.

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds