ANN: 4Suite 1.0b1

Uche Ogbuji uche.ogbuji at
Sat Apr 16 01:52:19 CEST 2005

Today we release 4Suite 1.0 beta 1, now available from Sourceforge and

Highlights of changes

* Minor to huge performance increases throughout the core libraries:
  * Ft.Lib.Set implemented in C, resulting in faster evaluation of XPath
    expressions using '/', '//', and '|')
  * 40x speedup in startup time for Domlette parsing
  * Additional optimization of XPath expressions involving '/', '//',
    'child::' and others
  * .docindex removed from Domlette nodes; they now compare to each
    other in document order (e.g., when in a list, .sort() can be called
    for document order).  Resulting XPath/XSLT speedup
  * XSLT whitespace stripping optimized; xml:space handling fixed
  * XML string utilities now in module Ft.Xml.Lib.XmlString,
    implemented in C, as part of Domlette optimizations
  * Mini-SAX interface added to the Domlette Expat library, via
    Ft.Xml.Sax. The "mini" is due to the fact that only the interfaces
    required for parsing XSLT stylesheets are exposed.
  * XML catalogs and XSLT stylesheets now read via the fast mini-SAX API
  * Many more Domlette speed and memory optimizations
* RDF core: various optimizations result in speedup of RDF completes and
  faster database access
* RDF core: better Unicode handling; improvements to the way statements
  are printed, compared, iterated over, reified, serialized/deserialized
* RDF core: optimized RDFS validation (90% speedup plus other
  optimizations) plus updated to current standard
* XML core: Ft.Xml.MarkupWriter introduced--very friendly interface for
  generating XML content based on the XSLT writers, but adding
  convenience methods for common element creation patterns, and
  for inserting chunks of "literal" markup
* XML core: FtMiniDom removed
* XML core: All dependencies on PyExpat removed
* XML core: Domlette nodes have new attributes:
  * xpathNamespaces, a dict of in-scope namespaces
  * xpathAttributes, the node's attributes, not counting
    those for namespace bindings
* Environment variable XML_CATALOG_FILES now supported
* XPath: extension functions that access the underlying OS are now
  disabled by default (e.g., f:spawnv(), f:system(), f:env-var())
* In Ft.Lib.Uri.OsPathToUri and UriToOsPath, attemptAbsolute now
  to True
* XLink: xlink:show='replace' behaves more usefully & sensibly
* BerkeleyDB (bsddb) RDF and repository drivers added (Py 2.3+ only)
* MySQL RDF and repository drivers optimized
* Repository: XSLT DocDefs repository can now use extension
* Repository: better handling of external entity resolution
* Doc generation issues resolved.  API docs can now be generated for
  every module in 4Suite (various
* XHTML 1.0 Transitional DTD added to default catalog
* Many more bug fixes and enhancements.  See also

4Suite is a comprehensive platform for XML and RDF processing, with base
libraries and a server framework.  It is implemented in Python and C,
and provides Python and XSLT APIs, Web and command line interfaces.

For general information, see:

For the files, see:


Windows installer:

Windows zip:

You can also get the files on Sourceforge:


In the locations specified above, with filenames of the form


Release notes

If you have built a 4Suite repository using an older version of 4Suite,
you will probably have to make adjustments for this new release.  If you
used 0.12.0a3, or a more recent version, then you will have to follow
migration instructions detailed in the following message:

In general, it's worth being familiar with the following document:

There have been on and off problems for Mac OS X users.  We think these
are now resolved.  Please see the following page for current status,
notes and recommendations:

Installation locations have changed since 0.12.0a3 on both Windows and
Unix. See the current installation directory layout document at:

If there is a server config files at the default location for the
build and platform (e.g. /usr/local/lib/4Suite/4ss.conf by default on
UNIX), it will be renamed to 4ss.conf.old and then overwritten.

For insulation from Domlette implementation changes, developers should
always use the generic Ft.Xml.Domlette APIs (rather than, say

Uche Ogbuji                               Fourthought, Inc.                   
Use CSS to display XML, part 2 -
Writing and Reading XML with XIST -
Use XSLT to prepare XML for import into OpenOffice Calc -
Schema standardization for top-down semantic transparency -

More information about the Python-announce-list mailing list