[Vimoutliner] graphs/trees

Scott Scriven vimoutliner at toykeeper.net
Wed Oct 25 20:16:20 EDT 2006


* Peter Princz <princzp at gmail.com> wrote:
> supporting an important feature down to filesystem level is a
> brilliiant idea, I enceourage you to elaborate on that.

There are just filesystem concepts I keep finding a need for, and
no solution seems to exist yet.  Originally I just wanted a photo
album with hierarchic categories where each image could be a
member of more than one category without making multiple copies.
A lot of the time, such categories can replace tags, labels,
keywords, or attributes.

For example, if I have a photo containing three people at a
halloween party, I might put it in a few categories:

  /people/bob
  /people/sue
  /people/zed
  /events/halloween/2006
  /places/zeds_house
  /dates/2006/10/31
  /photographers/scott  (I took the picture)

Other users might also add it to more categories.  If Mary likes
it, she might add it to /users/mary/favorites.  Or she might do a
search for "zed AND bob" and then browse the results at
/tmp/searches/20061102123043/.  If she really cared about the
search results, she could copy the entire thing to a more
permanent spot.  That's 9 categories for a single file so far,
and it barely scratches the surface.

As a somewhat insane/extreme example, imagine if the owner of a
file was a category instead of an attribute.  In the photo
example, the entries for /users/scott and
/people/bob/foo.jpg/..owner may actually be the same file.
I could then easily list all files I own with a simple "cd
/users/scott ; ls .." or similar.

> one of the success factors behind Unix is how they map almost
> every concept to files and provides efficient tools to
> manipulate files.

That was my favorite part of reiser4.  It treats files, dirs, and
attributes as the same basic type, and provides plugins to extend
that even to individual records within files.  So, you can "vim
mysong.mp3/.title" or "cp foo/..uid bar/..uid" instead of using a
special mp3 tag program or chown.

> Soft- and hard links on unix (shortcuts on windows) is a nice
> try to abstract from trees to graphs there.  So don't give up.
> :)

Symlinks are nice, but annoyingly one-directional.  The
abstraction is a bit thin.  I used symlinks to simulate a graph
in my previous prototype, and it just got out of hand.  I need
real bidirectional links to make things work correctly.  Symlinks
worked okay for the ~20,000 nodes in my test system, but they
would be completely inadequate for the many-million-node systems
I'm hoping to build.

> Particularly reiserfs has clouded future now, that its author
> has been arrested and also Novell has dropped it.

Yeah.  I'm sad.

I mean, I've read some of Reiser's kernel list posts.  I wouldn't
be terribly surprised if he's guilty.  But I selfishly hope he
didn't do it, since he was leading a field of research I care
about.


-- Scott


More information about the VimOutliner mailing list