Re: SetFS [Was: Re: Feature freeze imminent]

Tuomo Valkonen <[email protected]>
Newsgroups gmane.comp.window-managers.ion.general
Message-ID <[email protected]>
On 2007-02-27, Sam Mason <[email protected]> wrote:
> If you can think up any cases where you're not going to have a similar
> number of tags to files then I'd be interested to know, I'm failing.

Well, I suppose all the cases I can come up with are quite artificial.
There do tend to be a lot of files with unique names, and the rest
of the components of the path simply help locating them.

> It's up to the users to find the optimal way to use the tools isn't it?

And the optimal tools.

> Wouldn't there be the same number of occurrences for each tag? If so,
> how does the pruner know which one to pick?

It depends on all the results. And, yes, if there are tags with the
same frequencies (and same covered objects), the decision is arbitrary.

> I thought the point was to remove the hierarchy!

The point is to remove any fixed hierarchy. But the user isn't going
to like looking for a needle in a haystack. Therefore you want to 
present a dynamic hierarchy of results for each query: to somehow
prsent in multiple clusters all the files whose sets of tags contain
the search set of tags. These are naturally partially ordered by further
set inclusions, and in some interfaces you might want to show clusters 
by that partial order, i.e. show the files with minimal tag sets among 
the results. (These are also expensive to find: if we had the minimal tag
sets, the pruning would be trivial.) However, to map the results to the 
unix file system, that is not sufficient: readdir should return a list of 
tags, not a list of sets of tags. Therefore we must essentially add
the intervening "directories" between the search set, and the minimal
result tag sets.

>> foo/#created:year=2006/#prune:alltags/ (demonstrating also the
>> additional filters).
>
>:) you said you wanted to keep it simple earlier and now you're
> proposing some ad-hock language to "fix" the pruning process?

Well, additional search filters, for which I've thought the 
#filter:params path elements (and that are ignored for single
file operations as opposed to listings), is one of the few 
features that I've considered something to have there, although
not necessarily in the first versions. They are also a quite
simple faeture: you just essentially 'and' the tag bitmaps with
yet another bitmap. (On the implementation level, this should 
probably be just a functional composition of filters, like unix
pipes.) Obviously it should be possible to add such filters by 
plugins. The #prune control is not exactly such a filter, but 
you could still have it there without significantly complicating
things...

> You mentioned earlier that you'd come up with lots of ideas and
> discarded them because they didn't really solve anything.  I'm not
> really sure what problems you're trying to solve!  

You mentioned that hierarchy naturally suits code trees, and I
agree. So I've thought about ways of having such things on SetFS,
but it just gets too complicated. SetFS simply isn't a tool for
code trees, at least not as we presently think of them.

> I would be personally interested to see if we could turn this into
> something that would be usable as a file system that could be mounted
> to look after most of the files in a user's home directory.

Not necessarily most files in the home directory (there's a lot of
code trees in my $HOME), but most of the data that tends to collect
there almost unorganised -- largely thanks to the cumbersomeness
of saving random cruft on a hierarchical FS, or at least so it would
seem. One needs to experiment and have tools that support the tagged
way of working to find out if it really helps.

> How far apart are our goals?

Not necessarily that far apart.

> p.s. I hope this is somewhat interesting to you, I tend to get carried
> away with these sorts of discussions!

Sure.. and hopefully others on the list too :).

-- 
Tuomo
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.