Re: Moving away from app-centric mimetypes (e.g. kword)

"Steven D'Aprano" <[email protected]>
Newsgroups gmane.comp.kde.look
Message-ID <[email protected]>
On Tue, 14 May 2002 23:58, John Summerfield wrote:
> > Am Dienstag 14 Mai 2002 15:37 schrieb John Summerfield:
> > > Move the disk to another computer, all that information goes with
> > > it.
> >
> > Okay, but: Sending the file via email, and the information is lost,
> > isn't it?
>
> So? Of course it's lost if you don't send the metadata. But, you pack
> it up with GNU tar on OS/2 and sent that, and the metadata goes too.

In an ideal word, metadata shouldn't be treated any different from 
data. To the user, metadata isn't metadata, its just *data*. When a 
user emails a file, you don't expect the user to seperately select each 
file fragment on the disk in order to send all the information. 
Similarly, you shouldn't expect the user to have to select the file 
"data" and the file "metadata" in order to send all the information.

After all, if I snail-mail a "recipe" to my mum, I don't expect it to 
stop being a recipe. So if I email a "recipe", it shouldn't stop being 
a recipe either.

Unfortunately, without kernel support, I can't see any practical method 
for associating metadata with a file in a way that is 100% transparent 
to the user.


> > EAs are really fine, but the management of access rights is a
> > problem, too; especially when you think of shared files. And I am
> > not shure in how far they
>
> How so? Shouldn't EAs have the same access rights as the file?

There are different views on this. For instance, if I can see the files 
in a directory, shouldn't I be also able to see their metadata? File 
size, file name and modification date are metadata, and I can see them. 
It is silly to require read permission to a file in order to see its 
name!

But then, there may be some types of metadata that shouldn't be visible 
unless you have read permission.

Its a difficult question, and there is no easy consistant answer.

> > are implemented in the kernel and what about poratbility.
>
> I think some Linux filesystems do implement EAs now. Certainly
> there's been work on it.

As far as I know, there has been work done, but nothing conclusive. 
Apple had the beginnings of an excellent metadata system, although it 
did only have a fairly limited set of metadata types. At least that was 
the case up to OS 9. With the change to OS X, I'm not sure what the 
situation is now.

Microsoft has announced that their next generation of OS (Win3000?) 
will be based on database technology instead of a traditional file 
system. That should give metadata as a freebie.

> > However, I am against an implementation in KDE since this is
> > definitly stuff that should be done on the OS level.
>
> On that we agree.

You might, but I don't.

We had a long and pointless discussion about metadata last year on this 
list, and the final conclusion was that nobody was prepared to make any 
sort of conclusion. So let me stick my neck out and put it on the 
chopping block, and make a bold statement:


A broad-based, open-ended metadata system with a rich data-type set and 
flexible API surely requires kernel support, and maybe even a 
completely new database-driven file system, which is not coming in the 
forseeable future (at least for Linux). However, a limited, but still 
useful, subset of metadata can and should be implemented at the KDE 
level.


Why do I say it *should* be implemented at the KDE level? Because 
metadata is a solution to many problems, and a great help to the user. 
If we wait for the kernel guys to do it, it might not ever happen. By 
implementing a partial solution, we:

(i) add a useful feature; 
(ii) innovate in an obvious way; and 
(iii) maybe inspire the kernel guys to think about metadata support.

KDE already implements a very limited sort of metadata: directories 
have metadata such as "View Properties" and icons, and the Desktop has 
"IconPosition" metadata for any files in that directory. Rather than 
try to invent an open-ended metadata system, perhaps what we need is to 
take baby-steps first, a sort of "proof of concept" that it works and 
is useful.

So I propose that we add a "Kind" metadata to every file. There should 
be an app that lets the user create new "Kinds" (like letter, recipe, 
map, baby picture, project file, crap my boss wants me to do, etc), 
delete them, rename them. Files only have a "Kind" when the user 
explicitly sets one.

"Kind" is not a file type or MIME type. A text file is still text, 
regardless of whether it is an "Instructions" Kind, or a "Letter" Kind, 
or a "Recipe" Kind.

Metadata will be stored in the file's parent directory, perhaps in the 
.directory file. I propose this, not because I think its the best 
solution, but because it is a *reasonable* solution -- its faster than 
using a central database, and KDE already reads the .directory file 
when needed, so KDE isn't doing excessively more work.

The disadvantages are that, if you move or rename a file, you lose the 
metadata. But since this is a Proof Of Concept, and not a perfect 
implementation, perhaps we can live with that limitation in the short 
term.

Comments?



-- 
Steven D'Aprano
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.