Re: Hierarchical tag structure in SetFS

2007-03-02 Thread Sam Mason
On Thu, Mar 01, 2007 at 06:23:03PM +, Tuomo Valkonen wrote:
 On 2007-03-01, Sam Mason [EMAIL PROTECTED] wrote:
  Comments?
 
 I didn't bother to read all the technical explanation in detail,

I thought it would be nice to have something concrete to discuss, but it
was probably a bit early!

 but it seems to me that you're not after what I'm after. You're
 after a more complex system, where all tags are merely informational,
 meta-data, whereas in my system the tags are the identity.

I guess I have ended up somewhere quite different from where we started,
yes.  I moved away from your idea of a flat namespace for tags mainly
because I don't think it'll scale well.  I did a find -type f in
my home directory and went through giving tags to all the files and
surprisingly quickly started hitting places where files would get the
same set of tags or I would have to give files unnecessary tags to make
naming work.  The tags also started to get increasingly byzantine names
as I worked my way down the hierarchy and I can't see any way for this
not to happen.

I think those are the main reasons that I adopted a hierarchy for the
tags.  Once I'd got them I pulled all the features back I could from our
previous discussions and ended up at the idea I sent.

The main point of departure from your system, as far as I can tell, is
that I only use a single binding (tag,name) is used to identify a file
where as you only want the set of tags to identify a file.  You try much
harder to make the existing Unix interface with the system, but I don't
think this difference is as important.

The main reason I use a single tag, rather than a file's complete set of
tags, is because a file's tags will change over time (I think) yet in
the face of this change we want file names to remain working.

 (How else do you provide persistent search results? That's a key
 component in my system: persistency of locations. Adding new files
 does not stop a known path from working for opening a particular file.)

I view search results as just that, the result of a search.  Searching
again at a later date *will* return different results and I don't think
it's sensible to try too hard to make it too stable.  If a file can be
located through just one tag I think naming will be much more tolerant
to change.

 Or otherwise you're just unnecessarily distinguishing that file name.
 In doesn't seem like what I'm after at all.

The file name does become special for me, but I couldn't see any other
way to keep the other properties.


I don't know if I've moved too far away from your idea for the
differences to be reconciled, I hope I haven't and we can bring things
back together again.


  Sam


Re: Hierarchical tag structure in SetFS

2007-03-02 Thread Tuomo Valkonen
(Since the other message seems to have stuck in some queye, I'll just
reply again here, although I should be replying to myself.)

tuomov wrote:
 But having to use some arcane (numeric) identifiers for persistent
 access to files instead of their paths drifts too much away from
 unixland into WIMPland.

The following quote explains the connection to WIMPs (Weakly Interacting
Massive Programs):

 The see-and-point principle states that users interact with the computer
 by pointing at the objects they can see on the screen. It's as if we have
 thrown away a million years of evolution, lost our facility with
 expressive language, and been reduced to pointing at objects in the
 immediate environment. Mouse buttons and modifier keys give us a
 vocabulary equivalent to a few different grunts. We have lost all the
 power of language, and can no longer talk about objects that are not
 immediately visible 

 [D. Gentner and J. Nielsen: The Anti-Mac Interface,
  http://www.acm.org/pubs/cacm/AUG96/antimac.htm]

In a metadata DB FS, files don't have names that we can talk about.
We can only search for them in various ways, and point at the found
objects.

-- 
Tuomo



Re: Hierarchical tag structure in SetFS

2007-03-02 Thread Tuomo Valkonen
On 2007-03-02, Sam Mason [EMAIL PROTECTED] wrote:
 I don't know if I've moved too far away from your idea for the
 differences to be reconciled, I hope I haven't and we can bring things
 back together again.

I think you're much closer to the usual metadata-based DB file 
systems than my approach, especially as you don't care about 
persistent search results, which is fundamental to my idea: if
I didn't care about them, any metadata-based DB FS might do it.
But having to use some arcane (numeric) identifiers for persistent 
access to files instead of their paths drifts too much away from 
unixland into WIMPland. Now, there could be advantages to working
with abstract objects intead of paths, and maybe nice command line
interfaces could be designed for that, but it's not going to happen
in such a time scale that setfs can be implemented in. It would take
decades. So I want something that works with existing tools: setfs.

I think you're also still confusing the notion of a tag on setfs,
and meta-data tag: you're thinking too much in terms of providing
lots of description (metadata) for a file, and too little in terms
of simply removing the order from unix path names, and providing a
non-hierarchical identity. Yes, deciding on an identity for a file
can demand a bit of effort, and it is not always clear, but it 
should be easier to decide on an non-hierarchical identity than a
hierarchical one in at least some use cases. I think organisation
of random notes could be one of those, and that's why I want to try
this in riot.

-- 
Tuomo



Re: Hierarchical tag structure in SetFS

2007-03-02 Thread Sam Mason
On Fri, Mar 02, 2007 at 01:06:44PM +, Tuomo Valkonen wrote:
 Come to think of it, perhaps people are going the wrong way
 about database file systems: implementing them on top of a
 conventional FS, giving useless names to the files under the
 database file system's control. Perhaps it would be better
 to have at the bottom an unorganised data store with only
 abstract identies for objects, and then have additional 
 systems on top of that providing names to things that need
 them: traditional hierarchical, setfs-style, whatever fits
 the application. Files could have names in multiple systems,
 and Not every file would need to have an identity in any of 
 these systems (except one providing access to the files with
 the meaningless identifiers in an uniform manner). 

And how do you ensure that every program can interact with every file?

Capability Systems provide a very good way through a pattern that has
started to be known as the powerbox, plash[1] is an implementation for
GNU/Linux that looks as though it can replace the GTK file-open dialog
with one that would return a capability to the file rather than its
name.  It would be possible to extend this idea and make the plash file
chooser aware of different ways of finding files.


  Sam

 [1] http://plash.beasts.org/


Re: Hierarchical tag structure in SetFS

2007-03-02 Thread Sam Mason
On Fri, Mar 02, 2007 at 01:51:51PM +, Tuomo Valkonen wrote:
 On 2007-03-02, Sam Mason [EMAIL PROTECTED] wrote:
  And how do you ensure that every program can interact with every file?
 
 Mounting the naming system somewhere in the global namespace?
 Or maybe URL-style stuff, if we didn't have to stick to the unix
 namespace (which we would): setfs://foo/bar/

URLs are only useful for opening a file when you know the name.  I
wouldn't like to type complete filenames (with all path elements)
each time I wanted to open a file.  Things like tab completion and
working directory only really work when you have something with similar
semantics to a hierarchical file system and can afford to expose the
interface.

  Capability Systems 
 
 Of course, supposing all files are not in a global namespace, 
 a private namespace is a capability system: to give a program 
 an access to a file, the program giving the capability would 
 map it in the requesting program's namespace and naming system
 (at a requested location). 

If you have to work with namespaces then this is about all you can do.
Inside a real capability system you would just ask something (the GUI
normally) to interact with the user and give you back a capability
(similar semantics to a reference in programming terms) to the file(s)
the user selected.

 But I'm not to keen on namespaces private to processes...

Capability systems generally don't imply private namespaces, it's just
the only obvious way to implement this sort of thing under Linux.


   Sam


Re: Hierarchical tag structure in SetFS

2007-03-02 Thread Tuomo Valkonen
On 2007-03-02, Sam Mason [EMAIL PROTECTED] wrote:
 Things like tab completion and
 working directory only really work when you have something with similar
 semantics to a hierarchical file system and can afford to expose the
 interface.

The concept of a directory does not really apply, but SetFS can 
(obviously) have a working set, tab-completion, and so on.

 Capability systems generally don't imply private namespaces, it's just
 the only obvious way to implement this sort of thing under Linux.

No, capability systems as you put it, only imply hanging onto what
you see. But you need to give things some identifiers for the user
to be able to talk about them to the system. You need namespaces.
A capability system without names is useless. Draggingdropping
random icons presenting the objects between programs to give them
access to things is totally impractical, totally unusable. You need
names that you can just input, without laborously looking up the 
object -- as is the WIMP approach. Whether every program has direct
access to global namespaces, or whether they need to query some 
other program that only sees the namespace (going to be a _lot_
of work to support various kinds of UIs!), for both the object and
the name to talk about, is irrelevant to that.

-- 
Tuomo