DESIGN: NOTE: This document is a work in progress. Topic Maps for Zope (ZTM) is a set of modules that implement topic map content types for ZOPE's CMF framework. While ZTM consists of many parts, in this document we will focus on the the core engine which is basically the ZTM2 module. This document attempts to describe how it works, and touch upon some of the challenges faced by a Topic Map application in the Zope 2.x environment. What are topic maps? Before you begin to develop for or on ZTM it is useful to know what topic maps are and how they are used. That is however not the scope of this document, so we suggest reading the "TAO of Topic Maps":http:///www.ontopia.net/topicmaps/materials/tao.html by Steve Pepper of "Ontopia":http://www.ontopia.net. It introduces the basic concepts of topic maps. Searching for topic maps will turn up many good resources. The vision of ZTM. That is a pretty lofty heading, but one that is apt for this section. With ZTM we are trying to apply CMS patterns and processes to the maintainance of an ontology and a knowledgebase. The basic goal, which has been achieved to a varying degree, is to give users a powerful framework where one does not even need to understand the word ontology to get started. You have probably read that a hundred times before, describing all sorts of information systems. We do however believe that ZTM is in many ways different. At least it has allowed us to do some very cool things which have been (and are) state-of-the-art. The core strength of ZTM is that it employs the powerful and flexible Topic Maps ISO standard for its data model. This (IMHO) gives ZTM a lot more flexibility out of the box than many other systems. As you can guess from the version numner, this is the second implementation of the ZTM ideas. :: Describe knowledge patterns :: Describe feedback-principle :: Describe our naked objects-ish approach :: Describe data model flexibility and extensibility :: Describe ZTMDefault as one CMS approach on top of ZTM. :: Ontology manipulation, knowledgebase editing Design Philosophy ZTM has a lot of historical baggage, but this section will attempt to focus on the way ZTM is intented to work. :: Describe attempt to ground in usability principles Components, templates, portal types and tying it together. :: Describe the single content type idea Persistence Issues :: Describe wrapping and recursive wrapping Events and other API issues :: Describe namebased API, and how we are moving to a PSI based API What about other systems like Plone? There are a couple of other projects that has built successful software on top of CMF. Especially well known is Plone, but there is also CPS which is a very good system. ZTM does not currently integrate into Plone. They can easily coexist in the same CMF site, but ZTM does not take advantage of Plone's ArcheType modules for creating and maintaing content types. There has been some interest in an integration of ZTM into Plone, but no one has stepped up to sponsor it. Using Plone's templates would not require much of a customization to either project, but integration with the ArcheTypes system might present technical issues. It is however not something we have studied. Glossary: Ontology -- A specification of an conceptualization. A formal description of the data you wish to document. Zope -- Z Object Publishing Environment. An application server built in python. CMF -- Content Management Framework. A set of modules, tempaltes and design principles for building a CMS in Zope.