Markup Languages -- Programming Languages Experience, Insight and Innovation
420 Tweedsmuir Ave., Ottawa ON Canada K1Z 5N5
Voice: +1 613 761-1998,
Fax: +1 613 728-5353
sam@wilmott.ca www.wilmott.ca
An Architect, Developer, Researcher and Standards Expert, specializing in markup language technologies, most notably XML and SGML, and in programming language technology, especially as it can be applied to text processing. I have a strong record of advising on, designing, and implementing a wide variety of systems for storing, transmitting and processing textual data.
If there’s one major theme to all the work I’ve done, it is that computer software processes languages. The most common examples are programming language compilers that process programming languages, and XML parsers that process markup languages. But all data formats including graphical user interfaces can be usefully considered as languages, and it generally helps to do so. Understanding the underlying principles of all computer languages, and the way in which they interact with human languages, is my "secret weapon".
Special skills that I’ve demonstrated repeatedly include the ability to see simple solutions in the midst of complex issues, as well as the ability to apply the insights of theory to practical situations, without being either overly enamored of the theory or overly fixated on the practical details. Many people, including my teacher when I was 4 years old, the head of an ISO committee, and fellow workers at a recent job have all observed that I seem to "think differently from other people". Yet at the same time, the languages and interfaces I design make advanced concepts accessible to common users, without their needing to understand the complexity of those concepts.
My hope for the next stage in my career is to apply my experience and insight in new application areas. The issue for me is not whether these skills are applied in very general areas, such as programming language design, or in very specific areas, such as the solution of individual client problems, but rather that my skills be made good use of, and to the benefit of others.
Mulberry Technologies Inc.
www.mulberrytech.com
February 2007 - Present Analyser and XSLT Programmer
Analysing, documenting and producing XSLT stylesheets for converting XML documents for a major technical publisher.
During this time I've produced a series of Quick References for XSLT 2.0, XQuery 1.0 and XPath 2.0, which can be found at www.mulberrytech.com/quickref.
The other thing I've been doing during this time is researching new approaches to XML and document processing. It's a long-term project, and still in an experimental stage, but I'm hoping to be able to post my results in the next year or so.
Solace Systems Inc.
www.solacesystems.com
April - September 2006 Consultant
Helped develop software translating XSLT into code for Solace's VRS/32-06 XSLT Transformation Module.
Software
Exoterica / OmniMark
Technologies / Stilo Corporation, Software
Development.
www.stilo.com
developers.omnimark.com
1987-2004 Chief Scientist
For 16 1/2 years I worked at what started out as Exoterica, became OmniMark and is now Stilo. This period has seen the ongoing maturing of text use and text processing technologies. In 1987, the primary text processing application was still print publishing, most interestingly in large-scale Government and corporate contexts. (I’ve had a customer describe how many shelf-miles of manuals he had to manage, and that his "librarian" drove a forklift.) In the early 1990’s it was widely thought that CDs would become the dominant distribution medium for textual data, but the rapidly increased use of the Internet changed people’s minds about that in short order. It’s never very clear what the next dominant technology will be. It’s always important to track and employ current technology, but it’s also important to understand that the basic requirements for use and processing of textual data have not changed: one needs to work with it, access it and present a comprehensible view of it to its users.
My primary role at OmniMark was as the Company’s lead technical advisor and researcher. My role didn't limit what I did there, all the way from data entry when needed, up to product design and implementation.
The most important result of my work in this time was the OmniMark programming language, which still is the primary source of revenue for the company, and which has greatly influenced the markup language industry in the last decade or so. OmniMark contributed significantly to the spread of markup languages in the early 1990’s, and is still widely used in large-scale applications.
Most recently, I returned to one of my early major roles in OmniMark, the representation of customer information requirements in an accessible form, a task known as Knowledge Modeling. Now that XML in particular has become widely accepted, there is increasingly greater interest in what can be done with it.
Specific accomplishments and contributions include:
Designing and being the chief architect of the OmniMark programming language, explaining it and its implementation to others, and documenting it.
Integrating the Apache Xerces SAX XML parser into the OmniMark language, both in the language changes required to support it, and in actually implementing the interface between the two.
Designing and implementing OmniMark’s native SGML and XML parsers. These parsers are of note in two significant ways:
Implementing the compiler for the YLisp programming language, a Lisp dialect used to implement some of Software Exoterica’s early products, and to port other software from a mainframe to more commonly available computers.
Being the Canadian representative on the SGML (ISO/IEC JTC1/WG4) committee (1988-1992).
While at OmniMark I gave a number of public presentations, often controversial but well accepted, especially by management-level people who found that the presentations helped them better understand the role of different technologies without a fog of technical detail. My most recent presentations were:
XML
2001 Conference in Orlando, Florida.
"Standards: Master or Servant?"
www.gca.org/attend/2001_conferences/xml_2001 (no on-line presentation available)
Extreme
Markup Languages 2002 in Montreal, Québec.
"The Dichotomy of Markup Languages"
www.idealliance.org/papers/extreme03/html/2002/Wilmott01/EML2002Wilmott01.html
Extreme
Markup Languages 2003 in Montreal, Québec.
"What programming language designers should do to help markup processing"
www.idealliance.org/papers/extreme03/html/2003/Wilmott01/EML2003Wilmott01.html
Researcher and
"Shareware" Software Developer 1984-1987
In the mid-1980’s, the two features that dominate the current world of computer use came into public consciousness: personal computers and what was to become the Internet. During this period I spent time reviewing programming language and text processing ideas in the context of these new developments. At the same time I developed a variety of software, including an implementation of the LOGO programming language with networking capabilities, an Algol-family "stackless" programming language, a program for proving the correctness of English-style change-ringing compositions (PROVE), a small typesetting system for output to variable-pitch "daisy-wheel" printers, and a text editor, SLED (Sam’s Little Editor), that ran on a variety of IBM "clones" when the ability to do so was rare.
This period was informative and enjoyable, if not greatly remunerative. The SLED editor sold well for a number of years as what is now known as shareware, including a site-license for the Canadian Government. It was initially distributed over the FIDO network, and appeared on the cover disk of an early PC magazine. The PROVE program was incorporated into other change-ringing composition software and continues to be widely used.
Block Brothers’ Real
Estate (NRS) Data Center
1980-1984 Senior Software
Developer
The 1980’s saw the blossoming of data base technology, most commonly in financial and statistical applications. The Real Estate industry was amongst the first to use data bases for storing and accessing primarily textual and graphic information.
Assigned to special projects, I was the key designer and implementer of a new unified text and picture data base, an on-line real-estate access, update and weekly publishing system, and an email system.
Canadian Government Printing Office (a.k.a.
the Queen’s Printer), Typesetting Software Development and Maintenance
1973-1977 Programmer
1977-1980 Section Head
It was during the 1970’s that typesetting became largely computerized. The Canadian Government Printing Office was tasked with producing those publications that for technical or security reasons could not be dealt with by the private sector. As a consequence, the Government Printer developed a variety of software for dealing with publications with special requirements. These publications included Hansard, the daily record of the House of Commons, the Bills and Statutes considered by the Government, the federal Budget, and oddities like the Egg Marketing Board report.
As a programmer and later as head of the Typesetting Software Section, I helped develop this software, and to migrate software to new generations of computer and printing hardware. To deal with the increasing cost of different software for dealing with different publications, I designed and lead the implementation of a new programming language called HUGO that incorporated the needs of a wide range of publications. HUGO was designed not only to deal with existing typesetting needs, but purposely anticipated the advent of markup languages (SGML and XML), which were being discussed in the community, but were not yet developed. HUGO was used well into the late 1980’s, when desk-top publishing software finally provided a more economical solution to the problem of specialized publishing.
Wilmott
et al, "Method for Constructing of Electronic Documents", Canadian Patent
2230661, 1997.
patents1.ic.gc.ca/details?patent_number=2230661&language=EN
The papers I've presented in 2004, 2005 and 2006 are described on the Conferences page of my web site.
Honours B.Sc. in Computing Science, University of Alberta, Edmonton, 1970
M.Sc. in Computing
Science, University of Alberta, Edmonton, 1973.
Thesis title:
"On the Ordering of Modes in Algol 68".
B.A., major in English Literature, Carleton University, Ottawa, 1978.
When I’m not working I’m often reading -- making use of that English Literature degree. In spite of my general aversion to athletic endeavour, for the last two years I’ve been swimming about three times each week, and I love it. And I’m a regular attendee and worker at my church.
One activity that I’ve greatly enjoyed in the past, and which is also oddly athletic for me, is English-style change ringing, the ringing of bells in regular rhythmic mathematical-like patterns. It combines physical skill, interesting theory, an enjoyable sound and an excellent sense of community, because you have to work closely with others to ring well. Change ringing is one of the reasons I’m considering moving back to Vancouver. As part of my away-from-a-tower activity here in Ottawa I’ve helped develop web sites for various change ringing and related organizations:
The North American Guild of Change Ringers (www.nagcr.org) This is a good starting point for information on change ringing.
The Victoria BC Change Ringers (www.victoriaringers.ca)
Christ Church Cathedral in Victoria BC (www.christchurchcathedral.bc.ca)
The Music Endowment Fund of Christ Church Cathedral (www.cathedralmusicfund.org)
Amongst other tasks, I'm currently the web master for the web site for First Unitarian Congregation of Ottawa.