pathnames [Re: files, printers, etc. [Re: The feel of a Lisp

David Gadbois gadbois@cyc.com
Sun, 4 May 1997 23:11:01 -0500 (CDT)


   Date: Mon, 05 May 1997 10:47:58 +1000
   From: "Chris Bitmead uid(x22068)" <Chris.Bitmead@alcatel.com.au>

   I think this is subtley locking yourself into a particular paradigm
   of a Unix style tree structure. A true OOFS would not limit itself
   to simple tree style repositries.

Indeed.  This leads me to the following rant:

A major problem with traditional hierarchical filesystems is that they
conflate the orthogonal notions of persistence, sharing, naming, and
hierarchy, and, in so doing, do a bad job of dealing with all of them.

Persistence is the continued existence of objects across computations
and the failure of computations and the hardware they run on.  Sharing
is the ability of different computations to access the same objects.
Naming is the ability to refer to objects by some shorthand
independent of the objects themselves.  Hierarchy is the organization
of objects (not names) into a structure imposed by binary
relationships.

The notion of hierarchy deserves special mention because dealing with
it so frustrating.  The first problem is that you often want a
hetarchy (multiple inheritance) and have to resort to kludges like
links to get around it.  The second is more fundamental.  Having a
single hierarchy leads forces you to pretend that a single binary
relationship actually represents many different relations:
set-theoretic containment and element-of; object-oriented instance-of
and subclass-of; partative relations; geometric relationships; and so
forth.  This is a deeply seated mistake:  take a look at any
hierarchical thesaurus to see how badly people have been flubbing it
for ages.

Whatever persistence/access/naming/directory scheme we use, I hope it
allows for dealing with these issues.

--David Gadbois