re: Quilt (sucessor to Bento)

David McCusker (
Thu, 3 Apr 1997 23:43:23 -0800

Joe Kiniry <> wrote:
> i'll be a happier camper if quilt succeeded in solving some of the
> short-term issues wrt bento (too heavy-weight, some folks belief that
> there was needless complexity in the api and/or implementation, etc.).

Quilt is definitely lighter weight in terms of footprint required to
represent a large document. Bento's footprint is proportional to
content, but Quilt's footprint can be limited to whatever amount of
space an application feels like allocated (but more performs better).

There is likely too much complexity in the current Quilt API's because
I've not gone back and regularized things, removed bad ideas, and
simplified more complex ideas. But the API is generally simpler than
Bento's, _particularly_ with regard to handler interfaces (which are
painful to figure out from the Bento specification).

The implementation tries not to be more complex than necessary; some
aspects are in fact complex by necessity. For example, while the
format of Exodus style btree streams have a fairly simple format, they
are a bear to modify efficiently, which I endeavored to do. I have
several studies that explain why the code is the way it is, but it
really should be written up in articulate documentation. This is on
my plate for future work -- but it looks like it will be on my time.

In any case, the control flow in Quilt is much easier to follow than
that in Bento (opening a Bento doc with updated, embedded containers
is really nasty). Quilt has only a modest amount of control flow
passing through handlers, and the format is not recursive (embedding
is logical instead of physical), and Quilt is update-in-place or
copy-on-write as appropriate, which removes the need for Bento's
really arcane update instructions to modify existing containers.

> it sounds like this is perhaps the case, based upon a reading of this
> summary (diff trees, btrees, indexing). note that i do not have
> first-hand experience with bento, but i look forward to digging into
> quilt if/when it becomes widely available.

I'm negotiating with Apple to exchange my services to finish final work
on Quilt for the right to have access and keep applying it as I would
like. I'm pushing to set up a very open licensing model (or perhaps
public domain, but this seems fairly unlikely at best).

> we'll just have to see if this technology is transitioned with the
> rest of the opendoc camp and then we'll get a chance to look at it
> first hand and make a decent evaluation on it applicability.

I'll likely forward a copy of my proposal to Joe Kiniry, but it should
not be posted in public forums by my preference; please help me here.

> Ernest N. Prabhakar writes:
> :Since we've had discussions of OODBs as replacements for filesystems,
> :I thought I'd post this for your perusal. Bento is the file format
> :for OpenDoc, which may yet survive despite OpenDoc's demise. I
> :suspect it doesn't get Rhapsody a whole lot that stylized
> :TypedStream's couldn't do, but perhaps there's still something to be
> :said for it.

Quilt is rather better than Bento. There's more than just stylized
TypedStream. For example, there's btree dictionaries for indexing.
And there is demand paging of content that cleanly defines a client/
server interface for limited client devices to use Quilt efficiently.
I tell folks it is useful to characterize Quilt as an efficient binary
MIME format, in terms of its flexbility (like MIME) and in terms of
its performance (like an OO database).

The potential for widespread application, as well as the potential for
a fantastic level of hype, are not that dissimilar from Java.

> :Actually, the main thing I thought FoRK would appreciate is his .sig
> :quote:
> :
> :Values have meaning only against the context of a set of relationships.

Yes, I've had that in my signature for more than a year; it's original
with me. It's a short expression of a set of notions I've developed
over the years. It's indirectly related to several topics concerning
how things are valued in languages (etic vs. emic for example) and
cognitive psychology. I have a seat-of-the-pants philosophy that finds
useful similarities in all problems that deal with complex systems that
human beings have constructed or are trying to understand.

Thinking about values, contexts, and relationships allows one to usefully
characterize most engineering problems in computer science. For
example, these terms have obviously interpretations in when considering
how variables (or l-values in general) are dealt with in programming
languages. I suppose there's some basic description in a Turing language
space but I haven't bothered to think about it yet.

I can apply this concept to any computer science topics I can consider.
My signature allows one to apply critical thinking to problems of natural
language processing and artificial intelligence systems, for example.

Anyway, I'm blathering about what amounts to my personal mysticism and
that typically is rather boring. Still I'll mention a couple other
related things in case it's interesting. My sig is a long version of
saying "everything is relative", except my sig expresses it in terms
that allow substantive application to real world problems, and allows
one to reason directly from logic and scientific evidence. The concept
of context allows one to decide when logical statements are relevant.
(You'll notice that the word "relevant" actually gets tautological when
used in the explanation of the phrase, but it can't be avoided.)

My use of the term "value" was motivated by Robert Pirsig's book _Lila_.
The term "context" is motivated by my several year intermittent analysis
of conceptual primitives in natural languages; it comes from a recognition
that the core set of relationships are actually present in all situations
denoted by language sentences, except that specific words call out nuances
of the same relationships but applied in different contexts. The term
"relationships" is motivated by the mathematical concept of relation, and
implies use of set theory and propositions. The term "meaning" can be
replaced as easily with "significance" and simply means value (and so it
just redundantly echoes the first use of "value", however "value of value"
is disturbingly abstract, and is dry precisely because using different
terms that mean almost the same thing is the way to evoke mental imagery).

Sorry if that sounds crazy; I don't have a lot of practice articulating
these notions in isolation. Normally I only refer to them in passing
while decribing rational ways of thinking about problems at hand.

> :Something to think about for your book, Adam and Rohit.

What book is that? I'd be flattered by a mention. But perhaps the
content of the signature has a bearing upon the book content.

David McCusker, structured storage/Bento/Quilt guy,
Values have meaning only against the context of a set of relationships.
[ laid off, but technically on sabbatical until May ]