About the SPFE Open Toolkit
The SPFE Open Toolkit is an implementation of the SPFE architecture, designed to help people build SPFE systems.
SPFE is an architectural pattern for building structured documentation authoring and publishing systems. It is described on SPFE.info. As an architectural pattern, SPFE consists of a general architectural design and a set of design principles.
Unlike most other structured writing systems, SPFE does not begin with a DTD or schema, but with a build architecture. The idea behind SPFE is that structured writing systems are most powerful, and easiest to use, when content is written using small, simple, highly specific, strictly structured schemas. This approach makes the schema easy to learn and ensures a high degree or data integrity, which in turn supports a high degree of process automation.
The traditional problem with systems using custom schemas has been the development costs for the code that processes those schemas. The SPFE architecture is designed to address this problem by making the development and maintenance of processing code for custom schemas as inexpensive and reliable as possible.
While SPFE does not specify a schema or schemas, it does specify a number of principles that should be followed in designing scehmas to work with a SPFE build system.
About the toolkit
The SPFE Open Toolkit is intended to demonstrate one or more ways in which a SPFE system could be developed and implemented. It is also intended to provide a base on which people can build their own SPFE systems. As such, it includes a set of basic schema components, called “EPPO Simple”, which follow SPFE principles and which people can use as a basis for developing SPFE systems. However, neither the use of the SPFE Open Toolkit, nor the use of the EPPO Simple schemas is necessary to qualify a systems as a SPFE system. For that, all that is required is that the system conform to the SPFE principles.
The most notable feature of the SPFE architecture, particularly in contrast to DITA, is that is uses queries rather than maps to create and manage relationships between content objects. This does not mean that a SPFE implementation has to be hosted in a DBMS. While a DBMS provides numerous efficiency benefits for a large data set, a SPFE architecture can be implemented in any environment that allows any kind of query to be specified and executed. This includes anything from XML files residing in a file system, to an XML or relational DBMS, to a content management system.
The first version of the SPFE Open Toolkit implements a file system based approach. Approaches based on other technologies, particularly an open source XML database such as eXist, would be high profile candidates for adding to the SPFE Open Tool Kit.
There are three major components to the current SPFE Open Toolkit:
- The command-line based SPFE build system. This component is build using ANT and XSLT2 scripts (with Saxon as the default XSLT2 engine).
- The EPPO Simple schema component set. This consists of a set of schema components written in XML Schema (XSD) format, and a set of processing script components for these schemas written in XSLT2. The EPPO Simple schema component set is considered to be a plugin to the SPFE Open Toolkit. Other schema component sets and/or processing scripts can be added as plugins. Prime candidates might include DITA input and/or output support.
- The SPFE Documentation set. This consists of a set of schemas, all of which use components from the EPPO Simple schema component set, custom scritps, all of which use script components from the EPPO Simple script component set, and the XML source content for the SPFE documentation.
The SPFE Open Toolkit is presently in the initial development stages. XML developers and other interested parties are welcome to download the current code base from GitHub, but the toolkit is not ready for regular production use at this time. However, Analecta Communications can assist you in the development of your own SPFE system today.