Christopher B. Browne's Home Page

Compound Documents

Christopher Browne

$Id: compound.sgml,v 1.16 2005-12-28 14:06:08 cbbrowne Exp $

Table of Contents
1. OpenDoc

Perhaps the prototypical (stereotypical?) example of a "compound document" system is OpenDoc , which assembled documents as collections of "document objects."

This approach to documents generally involves the use of object technologies such as CORBA.

Rather than building an "application," you build up objects that know how to manage some sort of document component, such as a spreadsheet, picture, chart, table, or whatever. The user then embeds documents as needed to build up the document that they are working on. OpenDoc's storage system was called Bento; it is not clear that it was ever fully released.

Sadly, this has proven to be the rule for pretty well any of the compound document frameworks - once you try extending usage beyond simple scenarios, the complexity of the possible interactions explodes, and so we don't have things more sophisticated than embedding fairly simple objects inside documents.

1. OpenDoc

OpenDoc builds up documents using "object components."

Note that the OpenDOC initiative has essentially failed from a commercial perspective, and IBM made IBM OpenDOC Sources "freely available."

The GNOME and KDE projects sought to build somewhat similar "compound document" infrastructures atop CORBA; they didn't really get terribly far down this road.

1.1. OpenDoc-like Technologies

Contact me at