MathML Logo


#Call for Papers

#General Information

#Registration

#Accommodations

#Travel

#Tutorials

#Presentations

#Schedule

    

Publicon 1.0: Structured Document-Authoring System Demo

Andre Kuzniarek
Wolfram Research, Inc.


Abstract

Publicon 1.0 is a structured document authoring system based on the Mathematica notebook front end and enhanced with custom document processing features. Technologies developed by Wolfram Research as support features in Mathematica are exploited here with the primary emphasis on an easy-to-use interface for creating and editing technical content for publication. This demonstration will cover Publicon's palette- and menu-driven interface, conversion processes for XML/MathML/HTML and TeX, a reference management system, and general customization features. Presentation by Andre Kuzniarek, Document Technology Manager at Wolfram Research and lead Publicon developer.

Overview

The emergence of XML has brought the concept of structured documents to the mainstream. Anyone who has slapped together a web page in HTML has had some exposure to document markup, but highly structured and robust document data is usually left to system developers and database programmers to sort out. XML editing applications tend to be generalized tools for analyzing document trees, particularly to assist with debugging DTDs. However, most document authors would prefer to focus on creating content rather than on document formatting semantics and abstractions. Publicon offers the means to that end, while providing enough access to what's under the hood to allow for user customization.

Publicon enters the field of document composition tools with an emphasis on maintaining rigid document structure for authors of technical content, since it exploits Mathematica's existing notebook specification with support for interactive 2-D mathematical typesetting (minus any of Mathematica's evaluation capabilities). This revolutionary typesetting system helped to serve as the model for MathML and the notebook "container" is extremely similar to today's DOM. What remained to be solved was a GUI interface for providing access to all the technical document features commonly required by the scientific publishing community, and to provide a practical XML export/import channel.

Interface Goals

Complicated document markup is easiest to control at the level of raw code, like TeX's macro language. It's up to the user to enter everything just right, and there's enough of a learning curve to become intimidated. [Graphics:Images/index_gr_1.gif] simplifies [Graphics:Images/index_gr_2.gif] composition with macros targeted to specific publishing environments, but it still doesn't free the user to focus on a WYSIWYG and dynamic document representation. Microsoft Word provides the WYSIWYG but lacks convenient access to technical publishing features other than style sheets. The goal of Publicon is to combine the approach of targeting specific technical publishing environments (APS, AMS, PubMed/BioMed Central, U of I Thesis style) with a convenient GUI interface.

While Publicon's print output is certainly of professional quality, it lacks some of the more detailed or sophisticated page description features common to expensive page layout applications or [Graphics:Images/index_gr_3.gif], hence it's forward-looking emphasis on authoring structured document data that can be exploited in any context. For version 1.0 that emphasis is narrowed more specifically to articles, rather than large-scale projects like books. Book-specific tools for indexing, tables of contents, and general file management will follow in version 2.0.

With the target document type well controlled, we can focus the interface on document-specific palettes which drive the authoring process. Buttons create templates or placeholders for each of the document elements with underlying structures hidden from the author's view and editing restricted to document content. Data that requires controlled entry is managed through forms, but the objective is to limit these forms to as few as possible. Buttons within the document palettes operate via Mathematica-defined functions, some of which accept a range of arguments for convenient user customization. Simple buttons can be constructed on the fly with standard Publicon menu features. Customized document palettes can be dropped into Publicon's application layout (like plug-ins) to enhance the available selection of composition tools.

While Publicon's interface is palette/menu/mouse intensive, there is almost an equal degree of support for keyboard-only input. This is particularly true for math, one of Publicon's (and Mathematica's) most valuable document composition features.

Interface Examples

General Menu and Interface Layout

  • Menus and items particularly relevant to MathML conference goers

  • Typesetting and formatting tools

  • Default document palette

Custom Document Palettes

  • Physical Review

  • AMS

  • BioMed Central

  • arXiv

  • Thesis

Notes and Cross-references Tools

  • XRef targeting and insertion

  • Note entry and formatting

Bibliography Tools

  • Database format

  • Keyboard shortcut for citation insertion

  • Button/dialog for citation insertion

  • Database editing via a dynamic form

  • Style sheet editing for customization of bibliography formats

  • Transparent support for custom database entities via user-defined reference templates

  • Automatic bibliography generation with complete underlying structure and formatting

Document Entities and Style Sheets

Publicon is based on Mathematica 4.1 and therefore is working with an older style sheet paradigm that is not as flexible as CSS, particularly with regard to option inheritance mechanisms. This will be improved in future versions, but for now all Publicon style sheets have to use the same list of explicit entities. That list will be a union of entities informed by elements supported in:

  • Common [Graphics:Images/index_gr_4.gif] environments

  • Targeted XML environments

  • Mathematica

  • Bibliography formats: APS, APA, Chicago Manual

  • Publicon-specific features

  • Future book features (TOC, index, chapter ornaments)

Document Channels

The payoff for adhering to strict document structures is in the ease with which a given document can be transformed into anything else. Publicon supports WRI's XML formats by default (NotebookML, ExpressionML), but also supports specific other DTDs including PubMed/BioMed Central and of course MathML.

  • XML and MathML export/import

  • [Graphics:Images/index_gr_5.gif] export

  • Techexplorer

  • HTML for Microsoft Word

Customization

Publicon 1.0 is intended as a targeted solution for specific publishing contexts. It's customization options are limited to style sheet modifications, user defined palettes and document palette tweaks. A secondary product is in the works that will function as a consulting platform and will support the Mathematica programming language features specific to document manipulation and XML translations.

  • Style sheets ([Graphics:Images/index_gr_6.gif] and CSS configuration and general notebook style editing)

  • User defined palettes

  • Document palette customization using source notebooks

Conclusion

We've attempted to address emerging needs for document authoring by building upon Mathematica's 6 year-old notebook technology with some new XML-specific functionality, targeted to a specific audience that should be receptive to our strongest feature: our user-friendly math typesetting system. However, the Mathematica programming language offers powerful control over interface elements and particularly document conversion to and from just about any XML (or [Graphics:Images/index_gr_7.gif]) environment. Publicon exploits that programmability to provide a specifically targeted authoring solution, but it will also become applicable as a general solution for customized authoring tools in any document-intensive environment.