So far, I've learned a little about archetypes which match these requirements pretty closely, but I only see how to use them in plone, not zope by itself. Any thoughts?
As you learned already, there are different object types the content a Zope installation is made of. All of them are defined as Python classes that reside on the file system. They all differ in their purpose and how they are used and how they present them selfs to the user. On top of that base a CMS system called CMF (Content Management Framework) was created. Within this framework objects that behave intelligently within the context of a CMS exists. These are "mere" base objects that know how to participate in a work flow or how to index them selfs automatically for easy retrival. we call them "portal_types". CMF comes with a bunch of them predefined like Document, Portal Image, File. Plone itself is (theoretically) only a Gui on top of CMF striving to give a better user experience in using CMF (it has long passed this state). If you want a new Portal-type that exhibits behavior none of the existing ones does you "traditionally" take one of base Zope classes like Image, add the needed behavior, derive it also from the CMF classes and add some more magic potion to give it CMF behavior and you are ready to use your new portal type within a CMF/Plone environment. However (and this is a big share of the whole job) you still have to create all the UI stuff. The more powerful CMF/Plone becomes the more magic potion you have to allot to your new portal types. To ease this, and to help that everything derives from a common base Archetypes where created. Using them to create new content types should relieve you from much of the burden. Theoretically they allow you to create a new portal type with UI and all within seconds. Practically it probably will take a bit more (say half a day). Robert