← Back to team overview

unity-design team mailing list archive

Re: Some impressions about the current status of Unity


On 26. feb. 2012 22:49, Adrian Maier wrote:

Come on ...    a filesystem that has hardlinks/symlinks   is still a
directory tree .

That is a little bit dependent on how you see it, but it's besides the point. How files are organized at a low level, isn't important to high-level tools and user interaction, which is what we are discussing here.

Locating/searching is one thing .   And the actual storage of the
files is another thing .

Let's not mix those two things together.

Exactly. Storage is completely irrelevant. Particularly for the Dash, which is designed to get data from all kinds of different sources. That, in and of itself, is a very good reason not to use a hierarchical scheme.

So basically the idea is to generalize the idea of "photo album
management using labels"    to any kind of file.    It could be
That is what we currently do and have been doing for a few releases now, though the user-visible tools to exploit it have just started to appear. When you access something in your Ubuntu system, you store when you accessed it, how you accessed it (clicked on a file), what you accessed it with (Nautilus), what was used to display the file (Totem), etc. Just in order to prevent heart attacks, let me quickly add that it's obviously only stored on your own computer and as personal information! There's nothing googlebing about it :)

We can store all kinds of other types of information in addition to that, such as where you were (using GPS), who were nearby (using Bluetooth), what project you were working on (using Hamster, for instance)... So, if you always play poker on friday nights, for instance, it makes sense to make your poker application extra visible on friday nights, even if you don't use it much during the week.

That is how recent applications, files, etc, are retrieved. The same could be done for the web, of course, making it possible to automatically add web applications to the applications lens, and as a frequent application in the dash. Then those web applications would be launched using a special web-app application which would give the web-app its own browser instance, quicklist, etc. None of that is impossible. It would be extremely impractical to implement that in something like Gnome menubar, for the simple reason that over time, you'll use a large number of web applications from different places. Storing that in a menusystem that displays everything all the time, wouldn't work.

However it's hard to imagine how could someone backup the photos if
the files are stored "nobody knows where"   and are accessible with
multiple search paths .  This sounds like chaos .

No, why? You'd backup a set of files based on what they contain and how you use them, not where they are located. Then you add a "last backup" tag to the files, and you would be able to get files which hadn't been backed up by searching for files with old backup tags. That might also help clean the system, because if you never care to backup a file, then that might mean it's because the file isn't needed anymore. So you could be presented with a list of files you've chosen not to backup, and given an option to remove them.

To me, semantic data access is the exact opposite of chaos. It is clarity and easy access across all kinds of data sources.

So you are thinking to have the metadata stored in a small database.
And integrate into the desktop the ability to manage the files with
labels , and search for them.
Not only labels. Structured metadata. We're using that database now. It's called Zeitgeist. You can read more about it here: http://zeitgeist-project.com/. It's a seriously cool project that creates seriously cool possibilities. Once we have good metadata, it becomes possible to build truly intelligent solutions that understands this data. For instance, when a customer calls you on the phone, the system prepares all the data relevant to that customer so that you have quick access to it when you answer the phone. Again, if the user has a bluetooth-enabled phone, the system could do this automatically when the customer enters the room. Or, your GPS could be used for the same thing. For instance, when you enter your office, the system makes your business stuff more available and your personal stuff less available.

What about the actual files ?   They still have to be stored somewhere
:  in a real filesystem   ,  or in some kind of database.

They have to be stored somewhere, somehow. It doesn't matter where or how, as long as you have access to them. Zeitgeist knows where the files are and hence whether they're accessible, which is why the recent files in dash will immediately hide files when you disconnect a USB datasource, for instance. If the files aren't available, you can't do anything with them, so don't show them.

Using a database would be a really bad option :  the access to the
Any single solution would be bad. We should always support any kind of storage. Currently, for instance, computers are able to use EEG to read patters from your brain. That's currently very primitive and only after serious training can it be used to write, for instance. In the future, it may be possible to use your brain as a data source. Sure that should be supported. Can you imagine using the memory of your first kiss as a key in order to login or to encrypt your data? :)

That may sound insane, but I think when designing software, it's important to keep an open mind. Besides, the real insanity is, that idea isn't insane anymore. It's just a little far fetched. :)

file would be possible only from within the special "semantic" file
manager .   Inaccessible from command line .   And inaccessible from
other file managers or  desktop environments  .
No. Why? You can access web pages in Firefox now using keywords for your bookmarks instead of storing it in a hierarchy. But you can store it in a hierarchy in addition to using keywords, and of course, in reality web servers present them in their hierarchy, and the network itself can be seen as another hierarchy. There's no conflicts. And the command line is very much more suitable for semantic access than any GUI I've seen, since it's actually intended to express words. Todays GUIs are actually more suitable for static data that never changes. But GUIs can be modernized. This is why we're here. The HUD in Unity, for instance, is available as a CLI application as well, proving that there's no conflicts between GUI and CLI in that regard.

If the files are stored in a real filesystem,   there will be problems
with keeping the metadata in sync with the actual files.

No, they're different things. You have your set of metadata on your computer. Let's say I am the object. Your metadata is correct as long as it reflects your opinions about me. How accurate those opinions _really_ are, is a completely different thing. The goal is for you to express yourself to your computer. That's also why it's important that the metadata isn't simply a tag editor. It needs to react to your actions and learn from what you do – like Ubuntu does. :)

So I would take this idea much more seriously if i had heard you guys
speaking of designing a new modern filesystem that adds support for
file metadata , file tagging , and advanced search capabilities .
So it would be a backwards-compatible filesystem usable from any
already existing application ,   but adding some new ground-breaking
features  .

There's no need for new file systems at all. And Zeitgeist isn't a secret. Neither is NEPOMUK, which is a related, but different technology. It's very exciting stuff.

And we have already begun to see ground-breaking features, such as the Dash and the HUD. Obviously; the best is yet to come. Just consider what will happen when we're finally able to ditch IPv4 and people are able to connect their computers to others and share data freely. If you're famiar with Last.fm's Scrobbler system, consider a digital life scrobbler that you can share directly with your friends without giant data providers as intermediaries. Then your friends computer can learn from your computer how you think, and then use that to optimize communications between you and your friends.

Suffice it to say, I'm all about the weird stuff :)

Jo-Erlend Schinstad

Follow ups