SPFE (pronounced “spiffy”) is an architecture for building structured authoring and publishing systems. SPFE is designed to reduce the cost, and therefore the risk, of adopting a structured writing and publishing solution. The name SPFE is an acronym for the four layers of the SPFE architecture: Synthesis, Presentation, Formatting, and Encoding.
The SPFE architecture is built on a collection of ideas about structured writing and system design that have long histories of successful implementation. SPFE is simply a codification of these ideas, just as DITA is a codification of a different set of ideas about markup and system design that individually have long histories.
In particular, SPFE is intended to inexpensively support the concept of database publishing. While the use of content management systems (which are databases) is common in technical communications today, in most cases they simply involve putting content in a database. Database publishing is about treating content as a database.
The difference between the two, in a nutshell, is this. When you put content in a database, an editor, writer, or information architect can search the content to discover relationships which they then express and record using maps or links. Those relationships then become objects in the database that must be managed and maintained as the content changes.
When you treat content as a database, you use the database to discover relationships programmatically based on the content and its metadata. Such relationships are dynamic and do not become objects in the database, and therefore do not have to be managed going forward.
The content as database approach has a number of benefits:
- It is not limited in the number of relationships it can discover or express, since human effort is not required.
- It calculates relationships dynamically at build time, so the relationships do not have to be updated when new information is added.
- If a subset of the content is published, relationships are calculated based on the subset, so relationships do not have to be managed for reuse.
- It can be used to customize content for an individual user by including the user’s data in the calculation of relationships.
The traditional barrier to entry of a database publishing system has been the cost and complexity of mapping content to relational database structures. However, you don’t need a relational database to do database publishing, since an XML document is a database in its own right (a hierarchical database). SPFE exploits the database properties of XML and the query capabilities of XSLT and XPath to provide a database publishing system that can be implemented on the desktop or in a configuration management system such as SVN. In addition to supporting the algorithmic discovery of relationships through the database, SPFE also allows you to specify relationships directly where necessary.
By collecting and codifying a workable set of ideas about structured writing and publishing, DITA has made structured writing much more accessible to the technical writing community. This is an important step forward, but at the same time it has meant that some other useful ideas have been eclipsed — ideas which, in specific instances, can produce great increases in quality and productivity. SPFE seeks to bring forward some of these useful and neglected ideas in a codified form inspired by DITA’s accomplishment. In particular, SPFE aims to support the development of structured writing systems that support database publishing features, and which are characterized by a high degree of content reliability and sophisticated automation, while also maintaining overall simplicity, openness, and low cost.
A SPFE Open Toolkit is being developed.