I was born 23rd February 1964 in London, England. I was educated
at Charterhouse. I read
Mathematics and Philosophy at Merton
College, Oxford, where I obtained Class I Honours.
I have been writing open source software since about 1987.
My first big project was groff, a complete, open source implementation of
the standard Unix typesetting system, including troff, eqn, tbl, pic, -ms and
-man macros. I donated this to the GNU
project. It's a standard part of Linux.
Since 1991, my work has been mainly in the area of
- An open-source SGML parser written in C. I created this based on the
ARCSGML parser materials by Charles
Goldfarb. It became the most widely used SGML parser in the world
- An open-source SGML parser written in C++. I wrote this from scratch to
overcome the limitations of sgmls. This is now used in numerous SGML products
and is widely regarded as the best SGML parser.
- International Standard ISO/IEC 10179:1996, a language for transformation
and styling of SGML. I was involved with this from 1991 and ended up writing
most of the standard.
- James' DSSSL Engine, an open source implementation in C++ of the style
language part of DSSSL.
- A simplified subset of SGML for use on the Web. I was technical lead for
the World Wide Web
Consortium's XML activity which developed
XML 1.0 Recommendation. Since its
publication in February 1998, XML has achieved widespread industry acceptance,
including Microsoft, Sun,
Oracle, Netscape, and
IBM as a key technology for the
future development of the Web.
- Web SGML
- I was active in the work of
(now JTC1/SC34) in developing SGML TC2, which enhanced SGML so that XML could
be a subset of SGML.
- An open-source XML parser written in C. This is the world's fastest XML
parser. It is being used by
- A free, open-source XML parser written in Java.
- XML stylesheet linking
- A little W3C Recommendation on associating stylesheets with XML
documents. I am editor.
- A language for transforming and styling XML. It is the counterpart to DSSSL
in the XML world. I was a co-author of the
XSL submission (with
Microsoft, Arbortext and Inso). The transformation part of
XSL has been separated out and is now called XSLT;
I am editor of the
The query language part of XSLT has also be separated out
and is now
called XPath; I am co-editor of the
- An open-source implementation in Java of XSLT.
- A schema language for XML. I designed and implemented this.
- RELAX NG
- A schema language for XML based on TREX and RELAX. This was developed
within OASIS and is now
an International Standard (ISO/IEC 19757-2).
- An open-source implementation in Java of a RELAX NG validator.
- An open-source program in Java for converting XML DTDs into RELAX NG.
- An open-source program in Java for translating schemas in RELAX NG into other formats.
- nXML mode
- A new XML mode for GNU Emacs which does incremental XML parsing
and RELAX NG validation.
I was a major investor in and a director of SoftQuad Software before it was acquired by
In 2001, I was awarded
the first XML Cup.
After visiting Thailand in 1995, I eventually moved there and am
now a permanent resident. I have a small company, the Thai Open Source Software Center,
which provides a legal framework for my various open-source
In November 2004, I started working at SIPA (Software Industry
Promotion Agency, Ministry of Information and Communication
Technology). My job is to promote open-source in Thailand.
I live in the Sukhumvit area of Bangkok.
I support a number of charitable projects in Thailand, mostly
related to education, particularly in rural areas. My main partner in
these projects is PDA. In
particular, I support Lamplaimat