CML Reference Guide

Chapter 2:  Purpose of CML


The Caucus conferencing system was first released in 1986 as a text-based, command driven conferencing (groupware) package.  Over the next 8 years, Caucus versions 1 and 2 were extended in a variety of ways that made it extremely customizable -- but still fundamentally text-based.

With the enormous growth of the World Wide Web in 1994-95, it became clear that a Web-based interface for Caucus could greatly increase its ease of use, and its popularity.  At the same time, the Web lacked any significant discussion or conferencing tools, and it was clear that a Web interface for Caucus could fill this gap.

Version 3.0 of Caucus was developed from the ground up as web-based client-server system.  It was designed to serve Caucus conference information to an HTTPD server, which in turn feeds HTML to any Web browser.  But the Caucus server (called "swebs") needs to know what data to serve, and how (what format) to serve it in.  This is the purpose of CML.

CML pages (files) are analogous to HTML pages.  They contain Caucus directives (e.g., "display the text of such-and-such response) in an HTML-like format.  They may also contain embedded HTML.

When a Web user wants to access (or add to) a Caucus conference, s/he points the browser at a special "entry" HTML page.  This entry page points to a CML page.  (The actual implementation of "pointing to a CML page" is done via the Web CGI standard.)  CML pages point to other CML pages, exactly analogous to the way HTML pages point to other HTML pages.

When an HTTPD server gets a request for a CML page, it passes the request on (via CGI) to the Caucus swebs server.  Caucus interprets the contents of the CML page, producing a dynamic HTML page, and passes it in turn on to the HTTPD server, which sends it to the browser.

(For more detailed information about this process, see the Caucus architecture description.)