A communiqué from A.M. Kuchling reports on the creation of an XML-based application for managing quotations. The Quotation Exchange Language (QEL) is an XML language for exchanging collections of quotations, and is supported by software tools consisting of Python scripts. Kuchling has prepared sample online quotation collections, including a primary collection with 'over 275K of quotations'; these collections are available in HTML, XML, text, and Fortune formats. Other collections include quotations from Canadian author Robertson Davies; various quotations from comic books; quotations from director and writer Peter Greenaway; amusing quotes seen in comp.lang.python or about Python; quotations from Tom Baker's autobiography 'Who on Earth is Tom Baker?'; quotations about cryptography and Internet anonymity; and a growing collection of quotes from Doctor Who. These collections "are maintained in XML, and converted into HTML, Unix fortune(1) format, and plain text by qtfmt.py, which provides an interesting small example of processing XML using the Python implementation of SAX (Simple API for XML). The author has prepared a Python 'quotation-tools package' for parsing and formatting QEL quotation collections, and tools for working with QEL files, such as qtgrep for searching them, and qtformat for converting QEL to various formats.
The IBTWSH DTD ["-//XML-DEV List//DTD IBTWSH 6.0//EN"] is used to define the XHTML Basic subset. The version 2.0 DTD formal public identifier +//IDN python.org//DTD Quotation Exchange Language 2.0//EN//XML and a system identifier is http://www.python.org/topics/xml/dtds/qel-2.0.dtd. Attributes which take date/time values should encode the value according to the W3C NOTE on date/time formats.
The author has made supporting software available as a 'quotation-tools package'. It constitutes a Python package for parsing and formatting QEL quotation collections, and tools for working with QEL files, such as qtgrep for searching them, and qtformat for converting QEL to various formats. The author is working on a qtmerge tool for merging a number of QEL files,
For using the 'quotation-tools package' you will need Python 2.0 or greater. The PyXML processing tools may be helpful to work with QEL files, but aren't required. The Quixote unittest.py is required to run the test suite, in case you want to hack on the software.