o integrates the MIME typing mechanism into WWW (as Dan has championed)
while making a MIME reader do the work (e.g., without requiring that an
html parser parse content-types, nor that it know what how to handle
those types);
o provides a bundling mechanism (as Dave has requested) so the various
media pieces are part of a single "compound document";
o suggests a variation where the media pieces are physically part of the
document layout (instead of being a button push away and a separate
window (as I think Dave also requested);
o allows for recursive embedding to create larger structures (like Dave's
"books");
o supports typing on either end of the link;
o relates the WWW (remote) document names to MIME message/external-body
types.
Right, so enough hype. These compound documents are MIME multipart objects
like the following:
Content-type: multipart/x-presentation; boundary=foo
--foo
Content-type: text/html
You know, <a HREF=part:id1> the world </a> is a funny place.
--foo
Content-ID: id1
Content-type: image/gif
Content-description: an image of a globe
Content-transfer-description: base64
JKLAHFKHKJHL53645NBDL3W45Y5KYKN...
--foo
A multipart/x-presentation is like a multipart/mixed (and will be treated
as such in simple MIME readers), except that the first part defines the
layout of the presentation. The interesting case for this crowd is when
that part is an html document with references to the remaining parts. In
the above example, I've implemented a reference through a new document
access type called "part", which looks for a sibling in the multipart with
content-id "id1". De-referencing that HREF cranks up the MIME reader
(e.g., metamail) on that part.
Using this bundling mechanism, multiple media types can appear in a single
document (the granularity of the web should be defined on conceptual
grounds, not media boundaries!). But the referenced parts can be of type
text/x-html, providing a bundling mechanism for portions of the web --
which at least partly addresses Daves request for book structures. Note
that the bundled parts can even be of type multipart/x-presentation, so one
can recursively intermix media and web bundling.
One can also imaging an alternative to anchors ("frames"?) where the
referenced object gets physically embedded in the layout of the text
(someone must have done this in SGML by now). Format-wise this would be
almost identical to my example above, and you could mix the two.
Note that the typing information is not in the anchor, it's in the
referenced part. Of course, you could allow typing in the anchor and have
it default or override the typing in the part, but it seems to me that in
general you want the typing at the destination. (I've probably touched on a
controversial point.) This is more important in my next point.
So I mentioned a relation between document naming in WWW and
message/external-body types in MIME. Suppose that instead of including the
GIF image in the above example, I had the following:
--foo
Content-ID: id1
Content-type: message/external-body; access-type=anon-ftp;
site=eitech.com; directory=/pub; file=globe.gif
Content-description: pointer to picture of globe
Content-type: image/gif
--foo--
When the reference to id1 is dereferenced, the MIME reader would fetch the
file from the remote site. (The second content-type acts as a default for
the file type, which can be overridden by typing information in the
destination.) Thus the "part" document access type, through MIME
interactions, can do remote references; one could view the anchor
<a HREF=anon-ftp://eitech.com/pub/globe.gif TYPE=image/gif>
as a shorthand for anchor referencing the external-body (do WWW addresses
have an anon-ftp access type? MIME external-body and WWW access type sets
are overlapping; they could be sync'ed).
I've gone way past the length limit for optimal readership :-), but I hope
many of you (especially Dave and Dan) have gotten all the way through.
Comments?
Jay
---------------------------------------------------------------------
Jay C. Weber weber@eitech.com
Enterprise Integration Technologies weber@cis.stanford.edu
459 Hamilton Avenue, Suite #100 (415)617-8002
Palo Alto, CA 94301